|
|
|
| Не хочет отправлять данные в БД.
Вот index.php :
<?php
include 'style.php';
include 'db.php';
echo '
<p>ГОСТЕВАЯ КНИГА</p>
<table>
<tr>
<td>ID</td>
<td>Имя</td>
<td>E-mail</td>
<td>Сообщение</td>
</tr>
';
$res = mysql_query("SELECT * FROM `ibelik_book");
while($row = mysql_fetch_assoc($res)){
echo '
<tr>
<td>'.$row['id'].'</td>
<td>'.$row['user'].'</td>
<td>'.$row['mail'].'</td>
<td>'.$row['message'].'</td>
</tr>
</table>
';
}
?>
<form action="add.php" method="post">
Введите свое имя<br />
<input type="text" name="user_book"/><br />
Введите свое email<br />
<input type="text" name="email_book"/><br />
Введите свое сообщение<br />
<textarea name="msg_book"></textarea><br />
<input type="submit" name="submit_book" value="Добавить"/>
</form>
|
Вот обработчик add.php
<?php
include 'style.php';
include 'db.php';
if ($_POST['submit_book']) {
$user_book = $_POST['user_book'];
$email_book = $_POST['email_book'];
$msg_book = $_POST['msg_book'];
trim($error = '');
if (empty($user_book)) {$error .= '<p>Введите свое имя</p>';}
if (empty($email_book)) {$error .= '<p>Введите свой email</p>';}
if (empty($msg_book)) {$error .= '<p>Введите свое сообщение</p>';}
if (empty($error)) {
$query = "INSERT INTO ibelik_book (user, mail, message) VALUES $user_book, $email_book, $msg_book";
mysql_query($query);
echo 'Добавлено!';
}else{
echo $error;
exit;
}
}
?>
|
| |
|
|
|
|
|
|
|
для: Belkin
(26.08.2011 в 17:27)
| | а если в add.php исправить
<?php
// ...
if (mysql_query($query)) {
echo 'Добавлено!';
} else echo "Не добавлено";
// ...
?>
|
что выводит? | |
|
|
|
|
|
|
|
для: psychomc
(26.08.2011 в 17:29)
| | Не добавлено. Сейчас попробую найти выше ошибку. | |
|
|
|
|
|
|
|
для: Belkin
(26.08.2011 в 17:31)
| | echo mysql_error(); | |
|
|
|
|
|
|
|
для: Belkin
(26.08.2011 в 17:31)
| | кстати вот это уберите, это бред
trim($error = '');
замените на просто $error = ''; | |
|
|
|
|
|
|
|
для: psychomc
(26.08.2011 в 17:36)
| | убрал :)
я просто думал, что будет полезно, если будет очищать сразу пробелы.
А вот сам еррор:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'ssss, sssssssssssssss, sssssssss' at line 1 | |
|
|
|
|
|
|
|
для: Belkin
(26.08.2011 в 17:38)
| |
$query = "INSERT INTO ibelik_book (`user`, `mail`, `message`) VALUES '$user_book', '$email_book', '$msg_book'";
|
вот так исправьте | |
|
|
|
|
|
|
|
для: psychomc
(26.08.2011 в 17:36)
| | а еще лучше на unset($error); | |
|
|
|
|
|
|
|
для: Lotanaen
(26.08.2011 в 17:40)
| | тогда будет notice | |
|
|
|
|
|
|
|
для: psychomc
(26.08.2011 в 17:42)
| | да, ошибка в отсутствии одинарных кавычек в запросе | |
|
|
|
|
|
|
|
для: psychomc
(26.08.2011 в 17:42)
| | Снова:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''dddd', 'ddddd', 'ddddd'' at line 1 | |
|
|
|
|
|
|
|
для: Belkin
(26.08.2011 в 17:44)
| | сорри, еще же переменные в круглые скобки взять же нужно )))
вот так
$query = "INSERT INTO ibelik_book (`user`, `mail`, `message`) VALUES ('$user_book', '$email_book', '$msg_book')";
|
| |
|
|
|
|
|
|
|
для: Lotanaen
(26.08.2011 в 17:45)
| | Вот:
CREATE TABLE IF NOT EXISTS `ibelik_book` (
`id` int(10) NOT NULL AUTO_INCREMENT,
`user` varchar(50) NOT NULL,
`mail` varchar(50) NOT NULL,
`message` varchar(500) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=2 ; | |
|
|
|
|
|
|
|
для: Belkin
(26.08.2011 в 17:47)
| | Теперь работает, спасибо всем)
а на счет $error, то лучше использовать так - , верно? | |
|
|
|
|
|
|
|
для: Belkin
(26.08.2011 в 17:49)
| | ну если удалять, то перемменой не будет, а если как раньше, то она будет, но с пустым значением... можно и так и этак... лучше наверное пустое значение присваивать... | |
|
|
|
|
|
|
|
для: Belkin
(26.08.2011 в 17:49)
| | нет. это глупо.
и еще было бы неплохо сделать экранирование перед занесением в базу данных. | |
|
|
|
|
|
|
|
для: psychomc
(26.08.2011 в 17:58)
| | Простите, а можно подробней немного? | |
|
|
|
|
|
|
|
для: Belkin
(26.08.2011 в 17:59)
| | почитайте о функции mysql_real_escape_string | |
|
|
|