Я уже поднимал эту тему... Можете пожалуйста подсказать, какие у меня ошибки... Весь код с прошлой темы почти полностью исправил... PHP: <?php include "config.php"; $1 = mysql_query("select * from stat;"); if($1) { // определяем таблицу и заголовки echo "<table border=1>"; echo "<tr> <td>Автор:</td> <td>Заголовок:</td> <td>Текст:</td> </tr>"; } else { echo "Невозможно произвести желаемую операцию, т.к на сервере возникла ошибка..."; exit(); } // так как запрос возвращает несколько строк, применяем цикл "while" while(list($avtor, $id_stat, $text) = mysql_fetch_row($1)) { echo "<tr> <td>$avtor</td> <td>$id_stat</td> <td>Stext</td> </tr>"; } echo "</table>"; { else } echo "<p><b>Error: ".mysql_error()."</b></p>"; exit(); { ?> Это был первый файл, выводящий содержимое страницы... А теперь код записи в базу PHP: <?php // сгенирируем уникальное значение для id_stat $query = "SELECT MAX(id_stat) AS id_stat FROM stat"; $stat = mysql_query($query); if($stat) { // получаем максимальное значение id_stat // и увиличиваем его на единицу $state = mysql_fetch_array($stat); $id_stat = $state['id_stat'] + 1; // добавляем в таблицу запись mysql_query("INSERT INTO stat VALUES ($avtor, $id_stat, $text"); } else { echo "<p><b>Error: ".mysql_error()."</b></p>"; exit(); } ?>
[sql]"select * from stat;"[/sql] лишняя ; $1 - переменная не может начинаться с цифры (почитай тут) PHP: <?php echo "</table>"; { else } echo "<p><b>Error: ".mysql_error()."</b></p>"; exit(); { ?> else не относится к какому-нибудь if PHP: <?php // сгенирируем уникальное значение для id_stat $query = "SELECT MAX(id_stat) AS id_stat FROM stat"; $stat = mysql_query($query); if($stat) { // получаем максимальное значение id_stat // и увиличиваем его на единицу $state = mysql_fetch_array($stat); $id_stat = $state['id_stat'] + 1; ?> если в БД поле id_stat сделать auto_increment и PRIMARY, то кусок можно выбросить, и при вводе в БД не указывать это поле (увеличится на 1 автоматически) [sql]INSERT INTO stat VALUES ($avtor, $id_stat, $text")[/sql] [sql]INSERT INTO `stat` VALUES ($avtor, $id_stat, $text")[/sql] переменные $avtor, $id_stat, $text надо брать в одинарные кавычки [sql]INSERT INTO `stat` VALUES ('$avtor', '$id_stat', '$text'")[/sql] всё что пришло от пользователя надо экранировать (addslashes() или mysql_escape_string()) [sql]INSERT INTO `stat` VALUES ('mysql_escape_string($avtor)', '$id_stat', 'mysql_escape_string($text)'")[/sql] P.S. уже лучше P.P.S. почитай http://phpfaq.ru/
ну да, пропустил и заодно PHP: <?php echo "<tr> <td>$avtor</td> <td>$id_stat</td> <td>$text</td> </tr>"; я так понимаю, что $avtor и $text зависят от ввода пользователя, значит надо ещё и через htmlspecialchars() прогнать, а то кто знает, что там ввести могут, помнишь было такое: так вот, при загрузке страницы будет вылетать окно с надписью "Привет" и это всего лишь цветочки... так что перед выводом PHP: <?php $avtor=htmlspecialchars($avtor); $text=htmlspecialchars($text); ?>
а будет ли это работать, как ожидалось? кстати, скобку забыли закрыть еще или не там поставили... может, все же так? PHP: <?php $sql = "INSERT INTO `stat` VALUES ('" . mysql_escape_string($avtor) . "', '$id_stat', '" . mysql_escape_string($text) . "')"; ?>
аффтара топика. У меня на второй глупой ошибке подряд, начинает нервно подергиваться глаз Если бы кто то подошел ко мне с таким кодом... гы, не уверен в своем душевном состоянии
копировал у аффтара поэтому и кавычки не в том месте просмотрел с mysql_escape_string аналогично... мдя, ну а что сделать, если глаза разбегаются, пишешь про одно, а уже другое замечаешь не смешно