За последние 24 часа нас посетили 18723 программиста и 1662 робота. Сейчас ищут 929 программистов ...

Проблема с UPDATE базы

Тема в разделе "MySQL", создана пользователем simoto, 9 дек 2012.

  1. simoto

    simoto Активный пользователь

    С нами с:
    9 дек 2012
    Сообщения:
    3
    Симпатии:
    0
    Помогите пожалуйста!
    Я начинающий программист, пишу сайт, на данном этапе пишу админ_часть к нему. Пишу редактирование уроков средствами php через формы, написал три файла add_lesson.php, edit_lesson.php, update_lesson.php. Проблема возникла в документе update_lesson.php, вроде бы обработчик правильно написан, но когда обновляю урок, меняю титул его, выдает сообщение мол урок обновился, оно заносится в базу, потом смотрю, а в титул выдает значение автора. Почему так, не могу понять, я несколько часов сидел, переберал код, всеровно не нашел причину.
    Вот сам файл update_lesson.php.

    Код (Text):
    1.  
    2. <?php
    3. include ("blocks/bd.php"); /*Соединяемся с базой данных*/
    4. /*Если существует в глобальном массиве , $_POST, определённая ячейка, то мы создаем простую переменную из неё.
    5. Если переменная пустаю, то мы уничтожаем её с помощью функции unset.*/
    6. if (isset($_POST['title'])) {$title = $_POST['title']; if ($title == '') {unset($title);}}
    7. if (isset($_POST['meta_d'])) {$meta_d = $_POST['meta_d']; if ($meta_d == '') {unset($meta_d);}}
    8. if (isset($_POST['meta_k'])) {$title = $_POST['meta_k']; if ($meta_k == '') {unset($meta_k);}}
    9. if (isset($_POST['date'])) {$title = $_POST['date']; if ($date == '') {unset($date);}}
    10. if (isset($_POST['deskription'])) {$title = $_POST['deskription']; if ($deskription == '') {unset($deskription);}}
    11. if (isset($_POST['text'])) {$title = $_POST['text']; if ($text == '') {unset($text);}}
    12. if (isset($_POST['author'])) {$title = $_POST['author']; if ($author == '') {unset($author);}}
    13. if (isset($_POST['id'])) {$id = $_POST['id'];}
    14. ?>
    15. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    16. <html>
    17. <head>
    18. <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
    19. <title>Обработчик</title>
    20. <link href="style.css" rel="stylesheet" type="text/css">
    21. </head>
    22. <body>
    23. <table width="690" border="0" align="center" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF" class="main_border">
    24. <!--Подключаем шапку сайта-->
    25. <? include("blocks/header.php");   ?>
    26.     <tr>
    27.         <td>
    28.             <table>
    29.                 <tr>
    30.                     <!--Подключаем левый блок сайта-->
    31.                     <? include ("blocks/lefttd.php");  ?>      
    32.                     <td valign="top">
    33.                             <?php
    34.                                 if (isset($title) && isset($meta_d) && isset($meta_k) && isset($date) && isset($deskription) && isset($text) && isset($author))
    35.                                 {  
    36.                                     /*Здесь пишем алгоритм обновления в базе данных информации*/
    37.                                     $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'");
    38.                                     if ($result == 'true')
    39.                                     {
    40.                                         echo "<p>Ваш урок успешно обновлён в базе данных!</p>";
    41.                                     }
    42.                                     else
    43.                                     {
    44.                                         echo "<p>Ваш урок не обновлён в базе данных!</p>";
    45.                                     }
    46.                                 }
    47.                                 else
    48.                                 {
    49.                                     echo "<p>Вы ввели не всю информацию об уроке, поэтому урок в базе не может быть обновлён.</p>";
    50.                                 }
    51.                            
    52.                                
    53.                             ?>
    54.                     </td>
    55.                 </tr>
    56.             </table>
    57.         </td>
    58.     </tr>
    59. <!--Подключаем нижний графический элемент-->  
    60. <?  include ("blocks/footer.php");        ?>  
    61. </table>
    62. </body>
    63. </html>
     
  2. smitt

    smitt Старожил

    С нами с:
    3 янв 2012
    Сообщения:
    3.166
    Симпатии:
    65
    Хочешь сказать 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);}}

    Думаю логику понял... :)
     
  3. simoto

    simoto Активный пользователь

    С нами с:
    9 дек 2012
    Сообщения:
    3
    Симпатии:
    0
    та то я знаю, я с самого начала везде писал deskription, и в бд такая ячейка и в прописи, все норм, у меня трабл в другом, я когда ввожу все значения, нажимаю на кнопку и в бд заносится значение вместо титла, значение автора. И когда выводится список уроков, то вместо названия урока там значение author, а должно title. Все остальное все обновляется, а именно проблемы с значением title.
     
  4. smitt

    smitt Старожил

    С нами с:
    3 янв 2012
    Сообщения:
    3.166
    Симпатии:
    65
    Мда... видимо мой намек не понят... так уж быть...

    Я выделил $title не просто так а потому, что ты записываешь в одну и ту же переменную разные значения.

    В самом конце ты присваиваешь этой переменной значение $_POST['author'] теперь понятно?
     
  5. Dmitriy A. Arteshuk

    Dmitriy A. Arteshuk Активный пользователь

    С нами с:
    19 янв 2012
    Сообщения:
    2.445
    Симпатии:
    66
    Адрес:
    Зеленоград
    http://snipcode.ru/catalog.html?snipid=53

    сори за стеб, если не понравится я уберу, но думаю ЧЮ у тебя есть )
     
  6. smitt

    smitt Старожил

    С нами с:
    3 янв 2012
    Сообщения:
    3.166
    Симпатии:
    65
    ЧЮ я понял у меня его достаточно, но вот что такое ЕР...

    Да ладно оставь, я не против.
     
  7. Dmitriy A. Arteshuk

    Dmitriy A. Arteshuk Активный пользователь

    С нами с:
    19 янв 2012
    Сообщения:
    2.445
    Симпатии:
    66
    Адрес:
    Зеленоград
    Единая Россия )
     
  8. simoto

    simoto Активный пользователь

    С нами с:
    9 дек 2012
    Сообщения:
    3
    Симпатии:
    0
    Йомайо, спасиба тебе смитт, БОЛЬШОЕ СПАСИБО....как же ты меня выручил, огромнейшее тебе спасибо, что бы ты прожил еще век :), спасибо тебе :))
     
  9. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    Код (PHP):
    1. if (isset($_POST['title'])) {$title = $_POST['title']; if ($title == '') {unset($title);}} 
    Да уж...

    Код (PHP):
    1. if(isset($_POST['author']) && trim($_POST['author'])) {
    2.     $author=$_POST['author'];
    3. } else {
    4.     unset($author);
    5. } 
    В любом случае могут быть недоразумения, так, что тут нужно правильно делать проверки...


    И писать везде типо как тут в этих примерах, это полный бред...
    Есть для этого разные типы.
    Которые могут ускорить проверку и выполнение скрипта.