За последние 24 часа нас посетили 18428 программистов и 1708 роботов. Сейчас ищут 838 программистов ...

Редактирование записей в бд

Тема в разделе "PHP для новичков", создана пользователем Smart, 11 май 2011.

  1. Smart

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

    С нами с:
    11 май 2011
    Сообщения:
    5
    Симпатии:
    0
    Адрес:
    Русь
    Доброго времени суток. Прошу подсказки, как сделать редактирование записи.
    вот то, что уже есть(вывод нужной строки из таблицы):

    Код (Text):
    1.  
    2. <?php
    3. include ('connect.php');
    4. $sql = mysql_query("SELECT * FROM posts WHERE id=".$_GET['id']);
    5. if($sql)
    6. {
    7. echo '<form action="change.php" method="post">';
    8. echo "<h4>Заголовок:</h4>";
    9. while($res = mysql_fetch_array($sql))
    10. {
    11. echo '<input type = "text" name = "topic" value = "'.htmlspecialchars($res['topic'],ENT_QUOTES).'"><br>';
    12. echo '<h4>Текст:</h4><textarea name = "content" >'.htmlspecialchars($res['content'],ENT_QUOTES).'</textarea><br>';
    13. echo '</form>';
    14. }
    15. }
    16. else
    17. {
    18. echo "<p><b>Error: ".mysql_error()."</b><p>";
    19. exit();
    20. }
    21. ?>
    22. // до этого места был обычный вывод из таблицы, а вот дальше примерный код ввода,
    23. // только нужно на кнопку повесить ввод, как это сделать не соображу пока, прошу у вас подсказки.
    24. //
    25. <?
    26.  
    27. $topic = $_POST['topic'];
    28. $content = $_POST['content'];
    29. $sql = 'INSERT INTO posts(topic, content) VALUES("'.$topic.'", "'.$content.'")';
    30.  
    31. if(!mysql_query($sql))
    32. {echo '<center><p><b>Ошибка при добавлении данных!</b></p></center>';}
    33. else
    34. {echo '<center><p><b>Данные добавлены!</b></p><br><br><a href=newpost.php>Добавить еще одну запись</a><br><a href=admin.php>на главную</a></center>';}
    35.  
    36. ?>
     
  2. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    ну смотри синтаксис UPDATE в том же яндексе и будет тебе счастье
     
  3. Smart

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

    С нами с:
    11 май 2011
    Сообщения:
    5
    Симпатии:
    0
    Адрес:
    Русь
    Так, запрос сделал вроде работает, только после нажатия на кнопку, сохраняется пустая строка, любая запись становится пустой, ощущение, что ничего в нее не передается после редактирования, но тогда почему запись пустая становится?
    вот код:

    Код (Text):
    1.  
    2. <?php
    3. include ('connect.php');
    4. $sql = mysql_query("SELECT * FROM posts WHERE id=".$_GET['id']);
    5. if($sql)
    6. {
    7. echo '<form action="change.php" method="post">';
    8. echo "<h4>Заголовок:</h4>";
    9. while($res = mysql_fetch_array($sql))
    10. {
    11. echo '<input type = "text" name = "topic" value = "'.htmlspecialchars($res['topic'],ENT_QUOTES).'"><br>';
    12. echo '<h4>Текст:</h4><textarea name = "content" >'.htmlspecialchars($res['content'],ENT_QUOTES).'</textarea><br>';
    13. echo '</form>';
    14. }
    15. }
    16. else
    17. {
    18. echo "<p><b>Error: ".mysql_error()."</b><p>";
    19. exit();
    20. }
    21. ?>
    22. <?
    23.  
    24. $topic = $_POST['topic'];
    25. $content = $_POST['content'];
    26. $upd = "UPDATE posts SET topic='".$topic."', content='".$content."' WHERE id=".$_GET['id'];
    27. echo '<form action="" method="post"><input type="submit" value="сохранить"></form>';
    28. if(!mysql_query($upd))
    29. {echo '<center><p><b>Ошибка при добавлении данных!</b></p></center>';}
    30. else
    31. {echo '<center><p><b>Данные добавлены!</b></p><br><br><a href=newpost.php>Добавить еще одну запись</a><br><a href=admin.php>В начало</a></center>';}
    32.  
    33. ?>
    Да и еще, после нажатия кнопки форма опять вылезает, но пустая. И похоже именно в этот момент запись в базу и происходит)
    а как на кнопку апдэйт повесить? Или тут вообще другая ошибка?
     
  4. karakh

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

    С нами с:
    11 дек 2007
    Сообщения:
    1.344
    Симпатии:
    0
    а когда ты сабмитишь форму, откуда у тебя берется $_GET['id']?

    <offtop> блин, что за каша в коде? </offtop>
     
  5. Smart

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

    С нами с:
    11 май 2011
    Сообщения:
    5
    Симпатии:
    0
    Адрес:
    Русь
    не совсем понял вопрос
    из пути он берется
    указывается в admin.php, при выборе записи из списка

    там такой код
    Код (Text):
    1.  
    2. include ('connect.php');
    3. $sql= "SELECT * FROM posts";
    4. $res=mysql_query($sql);
    5. echo 'Выбранные данные:';
    6. while ($inf=mysql_fetch_array($res))
    7. {
    8. echo "<table border=3 width=400px><tr><td>".$inf['topic']."</td><td width=50px><a href=change.php?id=".$inf['id'].">edit</a></td><td width=50px><a href=delpost.php?id=".$inf['id'].">удалить</a></td></tr></table>";
    9. }
    Вот где ссылка в коде, туда id добавляю. Если ты об этом спрашивал
    Про кашу это да.
     
  6. Mamont

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

    С нами с:
    5 дек 2010
    Сообщения:
    183
    Симпатии:
    0
    <form action="" method="post"><input type="submit" value="сохранить"></form>
     
  7. Smart

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

    С нами с:
    11 май 2011
    Сообщения:
    5
    Симпатии:
    0
    Адрес:
    Русь
    спс Мамонт) только это у меня есть уже(мое 2е сообщение)
    по клику обновление страницы происходит, но в базе пустая строка(