Помогите пожалуйста! Я начинающий программист, пишу сайт, на данном этапе пишу админ_часть к нему. Пишу редактирование уроков средствами php через формы, написал три файла add_lesson.php, edit_lesson.php, update_lesson.php. Проблема возникла в документе update_lesson.php, вроде бы обработчик правильно написан, но когда обновляю урок, меняю титул его, выдает сообщение мол урок обновился, оно заносится в базу, потом смотрю, а в титул выдает значение автора. Почему так, не могу понять, я несколько часов сидел, переберал код, всеровно не нашел причину. Вот сам файл update_lesson.php. Код (Text): <?php include ("blocks/bd.php"); /*Соединяемся с базой данных*/ /*Если существует в глобальном массиве , $_POST, определённая ячейка, то мы создаем простую переменную из неё. Если переменная пустаю, то мы уничтожаем её с помощью функции unset.*/ if (isset($_POST['title'])) {$title = $_POST['title']; if ($title == '') {unset($title);}} if (isset($_POST['meta_d'])) {$meta_d = $_POST['meta_d']; if ($meta_d == '') {unset($meta_d);}} if (isset($_POST['meta_k'])) {$title = $_POST['meta_k']; if ($meta_k == '') {unset($meta_k);}} if (isset($_POST['date'])) {$title = $_POST['date']; if ($date == '') {unset($date);}} if (isset($_POST['deskription'])) {$title = $_POST['deskription']; if ($deskription == '') {unset($deskription);}} if (isset($_POST['text'])) {$title = $_POST['text']; if ($text == '') {unset($text);}} if (isset($_POST['author'])) {$title = $_POST['author']; if ($author == '') {unset($author);}} if (isset($_POST['id'])) {$id = $_POST['id'];} ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="content-type" content="text/html; charset=UTF-8" /> <title>Обработчик</title> <link href="style.css" rel="stylesheet" type="text/css"> </head> <body> <table width="690" border="0" align="center" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF" class="main_border"> <!--Подключаем шапку сайта--> <? include("blocks/header.php"); ?> <tr> <td> <table> <tr> <!--Подключаем левый блок сайта--> <? include ("blocks/lefttd.php"); ?> <td valign="top"> <?php if (isset($title) && isset($meta_d) && isset($meta_k) && isset($date) && isset($deskription) && isset($text) && isset($author)) { /*Здесь пишем алгоритм обновления в базе данных информации*/ $result = mysql_query ("UPDATE lessons SET title='$title', meta_d='$meta_d', meta_k='$meta_k', date='$date', deskription='$deskription', text='$text', author='$author' WHERE id='$id'"); if ($result == 'true') { echo "<p>Ваш урок успешно обновлён в базе данных!</p>"; } else { echo "<p>Ваш урок не обновлён в базе данных!</p>"; } } else { echo "<p>Вы ввели не всю информацию об уроке, поэтому урок в базе не может быть обновлён.</p>"; } ?> </td> </tr> </table> </td> </tr> <!--Подключаем нижний графический элемент--> <? include ("blocks/footer.php"); ?> </table> </body> </html>
Хочешь сказать date deskription (надо description) у тебя правильно вставляются? Ничего не замечаешь? if (isset($_POST['title'])) {$title = $_POST['title']; if ($title == '') {unset($title);}} if (isset($_POST['meta_d'])) {$meta_d = $_POST['meta_d']; if ($meta_d == '') {unset($meta_d);}} if (isset($_POST['meta_k'])) {$title = $_POST['meta_k']; if ($meta_k == '') {unset($meta_k);}} if (isset($_POST['date'])) {$title = $_POST['date']; if ($date == '') {unset($date);}} Думаю логику понял...
та то я знаю, я с самого начала везде писал deskription, и в бд такая ячейка и в прописи, все норм, у меня трабл в другом, я когда ввожу все значения, нажимаю на кнопку и в бд заносится значение вместо титла, значение автора. И когда выводится список уроков, то вместо названия урока там значение author, а должно title. Все остальное все обновляется, а именно проблемы с значением title.
Мда... видимо мой намек не понят... так уж быть... Я выделил $title не просто так а потому, что ты записываешь в одну и ту же переменную разные значения. В самом конце ты присваиваешь этой переменной значение $_POST['author'] теперь понятно?
http://snipcode.ru/catalog.html?snipid=53 сори за стеб, если не понравится я уберу, но думаю ЧЮ у тебя есть )
Йомайо, спасиба тебе смитт, БОЛЬШОЕ СПАСИБО....как же ты меня выручил, огромнейшее тебе спасибо, что бы ты прожил еще век , спасибо тебе )
Код (PHP): if (isset($_POST['title'])) {$title = $_POST['title']; if ($title == '') {unset($title);}} Да уж... Код (PHP): if(isset($_POST['author']) && trim($_POST['author'])) { $author=$_POST['author']; } else { unset($author); } В любом случае могут быть недоразумения, так, что тут нужно правильно делать проверки... И писать везде типо как тут в этих примерах, это полный бред... Есть для этого разные типы. Которые могут ускорить проверку и выполнение скрипта.