moslem
@moslem
Not found page

Не добавляет данные из формы в БД, как исправить?

define("DB_HOST", "localhost");
define("DB_USER", "root");
define("DB_NAME", "gbook");
define("DB_PASSWORD", "");

$link = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD);

$mydb = mysql_select_db(DB_NAME, $link);
$res = mysql_query("SELECT name,msg,datetime FROM msgs"); // вывод записей на главную страницу

//функция для строк

function clean($value = "") {
    $value = trim($value);
    $value = stripslashes($value);
    $value = strip_tags($value);
    $value = htmlspecialchars($value);
    
    return $value;
}

$error = array();
$name = clean($_POST['name']);
$msg = clean($_POST['msg']);

if(!empty($_POST)){

	if(empty($name)) $error[] = "Текстовое поле имя не заполнено";
	if(empty($msg)) $error[] = "Текстовое поле сообщение не заполнено";
	if(empty($error)){
		mysql_query("INSERT INTO msgs (name, msg) VALUES ('$name', '$msg')");
		mysql_close($link);
	}
}

if(!empty($error)) {
	foreach($error as $err) {
		echo "<div class='error'>$err</div>";
	}
}


А вот сама форма HTML

<form method="post" action="<?= $_SERVER['PHP_SELF']?>">
	<div class="field"><input type="text" name="name" placeholder="Ваше имя"></div>
	<div class="field"><textarea name="msg" id="msg" cols="30" rows="10" placeholder="Ваше сообщение"></textarea></div>
	<div class="field-button"><input type="submit" name="submit" value="Отправить"></div>
</form>


Видимо я как-то неправильно написал код, запрос вроде бы правильный, не понимаю почему не добавляет текст в базу. Если получится еще помогите с удалением записи из бд, то есть чтоб для каждого отзыва оставленного в гостевой, была ссылка для удаления.
  • Вопрос задан
  • 186 просмотров
Пригласить эксперта
Ответы на вопрос 2
@javanub
Пишу с телефона поэтому код не оборачиваю. Во первых $result = mysqli_query($переменная с запросом, $connect); тут $connect это соединение с бд. Потом if (!result) die(mysql_error );
Ответ написан
Комментировать
@heartdevil
плыву как воздушный шарик
Привет, несколько замечаний

1) Попробуйте добавить вот такой код к вашему запросу, чтобы на случай ошибки увидеть ее
if (!$res) {
    die('Неверный запрос: ' . mysql_error());
}


2) Включите ошибки

error_reporting(E_ALL);
ini_set("display_errors", 1);


3) По mysq_query
ВНИМАНИЕ: Данное расширение устарело, начиная с версии PHP 5.5.0, и будет удалено в будущем. Используйте вместо него MySQLi или PDO_MySQL.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы