Здравствуйте, у меня башка взрывается, не могу никак создать столбцы со значениями через INSERT INTO в файле check.php. Изначально у меня на этот файл, я работаю в OPEN SERVER. Помогите пожалуйста что тут не так?
Вот html форма:
<form method="POST" action="./check.php" class="contact">
<fieldset class="contact-inner">
<h1 style="text-align: center; font-size: 20px; margin-bottom: 10%; line-height: 100%;">Создайте свой заказ или вакансию!</h1>
<p class="contact-input">
<input type="text" name="name" placeholder="Введите имя" autofocus>
</p>
<p class="contact-input">
<input type="text" name="name" placeholder="Введите e-mail" autofocus>
</p>
<p class="contact-input">
<input type="number" name="money" placeholder="Введите цену (автоматически в ₽)" autofocus>
</p>
<p class="contact-input">
<input name="tel" type="number" id="tel" placeholder="Введите номер телефона без + и ()">
</p>
<p class="contact-input">
<label for="select" class="select">
<select name="subject" id="select">
<option value="" selected>Выберите раздел</option>
<option value="1">Одноразовый заказ</option>
<option value="2">Вакансия</option>
</select>
</label>
</p>
<p class="contact-input">
<textarea name="p" placeholder="Введите требования или что нужно сделать. Опишите всё подробно, чтобы исполнители заинтересовались"></textarea>
</p>
<p class="contact-submit">
<input type="submit" name="submit" value="Отправить">
</p>
</fieldset>
</form>
Вот файл check.php
<?php
if(isset($_POST['submit'])){
$link= mysqli_connect("localhost", "mysql", "mysql", "data");
$link->set_charset('utf-8');
mysqli_query($link, "CREATE TABLE cards
(
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
`name` TEXT(200) NOT NULL,
`title` TEXT(40) NOT NULL,
`p` TEXT(250) NOT NULL,
`tel` TEXT(20) NOT NULL,
`email` TEXT(50) NOT NULL,
`money` INT(10) NOT NULL,
`subject` TEXT(40) NOT NULL
)");
$subject = $_POST['subject'];
$title = $_POST['title'];
$name = $_POST['name'];
$email = $_POST['email'];
$p = $_POST['p'];
$tel = $_POST['tel'];
$subject = (int) $subject;
$money = $_POST['money'];
if ($subject == 1){
$subject = 'Одноразовый заказ';
} elseif ($subject == 2){
$subject = 'Вакансия';
};
$a = "Subject: ".$subject." Title: ".$title." Name: ".$name." E-Mail: ".$email." P: ".$p." tel: ".$tel." ";
echo $a;
mysqli_query($link, "INSERT INTO `cards` (`name`, `title`, `p`, `tel`, `email`, `money`, `subject`) VALUES ('".$name."', '".$title."', '".$p."', '".$tel."', '".$email."', '".$money."', '".$subject."'");
};
?>
У вас небольшой бардак в коде.
Для начала, в форме input'ы имени и email имеют одинаковый атрибут name="name". Потом, autofocus имеет смысл только в одном - первом тэге.
В check.php вы соединяетесь с БД в процедурном стиле через mysqli_connect и тут же пытаетесь задать кодировку в объектном стиле $link->set_charset вместо процедурного mysqli_set_charset.
Далее. Зачем каждый раз создавать таблицу через РНР? Разве не проще и удобнее сделать это один раз при создании БД. А если уж так невтерпёж, то хотя-бы добавить в CREATE TABLE модификатор IF NOT EXISTS.
Ну и "вишенка на торте": в нынешнем виде код check.php - просто подарок хакеру, вообще ни одной фильтрации и валидации данных, хотя-бы штатными filter_input.
А зачем при каждом новом обращении к check.php создавать таблицу заново? Смысл, если вам надо только один раз создать таблицу и продолжить добавлять в неё данные, через INSERT