Где я ошибку допустил посмотрите код - MySQL

Узнай цену своей работы

Формулировка задачи:

Помогите.. где я ошибку допустил не редактируется проблемы с 'relat' когда его нет все просто работает, но когда добавляю больше столбцов то не идет.
Листинг программы
  1. <!doctype html>
  2. <html lang="ru">
  3. <head>
  4. <title>Админ-панель</title>
  5. </head>
  6. <body>
  7. <?php
  8. $host="localhost"; //хост
  9. $user="root"; //пользователь
  10. $pass=""; //установленный вами пароль
  11. $db_name="mtu"; //название бд
  12. $link=mysql_connect($host,$user,$pass); //коннектимся
  13. mysql_select_db($db_name,$link); //выбираем БД
  14. if (isset($_GET['del_id'])) { //проверяем, есть ли переменная на удаление
  15. $sql = mysql_query('DELETE FROM `mtu4` WHERE `id` = '.$_GET['del_id']); //удаляем строку из таблицы
  16. }
  17. if (isset($_GET['red_id'])) { //Проверяем, передана ли переменная на редактирования
  18. if (isset($_POST['name'])) { //Если новое имя предано, то обновляем и имя и цену
  19. $sql = mysql_query('UPDATE `mtu4` SET '
  20. .'`name` = "'.$_POST['name'].'",'
  21. .'`regis` = '.$_POST['regis'].' '
  22. .'`relat` = '.$_POST['relat'].' '
  23. .'WHERE `id` = '.$_GET['red_id']);
  24. }
  25. }
  26. ?>
  27. <table border='1'>
  28. <tr>
  29. <td></td>
  30. <td>А.А.А. / ФИО:</td>
  31. <td>Каттоосу / Прописка:</td>
  32. <td>Туугандыгы / Степ. родства</td>
  33. </tr>
  34. <?php
  35. $sql = mysql_query("SELECT `id`, `name`, `regis`, `relat` FROM `mtu4`", $link);
  36. while ($result = mysql_fetch_array($sql)) {
  37. echo '<tr><td>'.$result['id'].'</td>'.
  38. '<td>'.$result['name'].'</td>'.
  39. '<td>'.$result['regis'].'</td>'.
  40. '<td>'.$result['relat'].'</td>'.
  41. '<td><a href="?del_id='.$result['id'].'">Удалить</a></td>'.
  42. '<td><a href="?red_id='.$result['id'].'">Редактировать</a></td></tr>';
  43. }
  44. ?>
  45. </table>
  46. <?php
  47. if (isset($_GET['red_id'])) { //Если передана переменная на редактирование
  48. //Достаем запсись из БД
  49. $sql = mysql_query("SELECT `id`, `name`, `regis`, `relat` FROM `mtu4` WHERE `id`=".$_GET['red_id'], $link); //запрос к БД
  50. $result = mysql_fetch_array($sql); //получение самой записи
  51. ?>
  52. <table>
  53. <form action="" method="post">
  54. <tr>
  55. <td>А.А.А. / ФИО:</td>
  56. <td><input type="text" name="name" size="80" value="<?php echo ($result['name']); ?>"></td>
  57. </tr>
  58. <tr>
  59. <td>Каттоосу / Прописка:</td>
  60. <td><input type="text" name="regis" size="10" value="<?php echo ($result['regis']); ?>"></td>
  61. </tr>
  62. <tr>
  63. <td>Туугандыгы / Степ. родства</td>
  64. <td><input type="text" name="relat" size="20" value="<?php echo ($result['relat']); ?>"></td>
  65. </tr>
  66. <tr>
  67. <td colspan="2"><input type="submit" value="ok"></td>
  68. </tr>
  69. </form>
  70. </table>
  71. <?php
  72. }
  73. ?>
  74. </body>
  75. </html>

Решение задачи: «Где я ошибку допустил посмотрите код»

textual
Листинг программы
  1.     if (isset($_GET['red_id'])) { //Проверяем, передана ли переменная на редактирования
  2.         if (isset($_POST['name'])) { //Если новое имя предано, то обновляем и имя и цену
  3.             $sql = mysql_query('UPDATE `mtu4` SET '
  4.                     .'`name` = "'.$_POST['name'].'",'
  5.                     .'`regis` = '.$_POST['regis'].','
  6.                     .'`relat` = '.$_POST['relat'].','
  7.                     .'`birth` = '.$_POST['birth'].','
  8.                     .'`uch` = '.$_POST['uch'].','
  9.                     .'`street` = '.$_POST['street'].','
  10.                     .'`home` = '.$_POST['home'].','
  11.                     .'`kvart` = '.$_POST['kvart'].','
  12.                     .'`pasp` = '.$_POST['pasp'].','
  13.                     .'`bio` = '.$_POST['bio'].','
  14.                     .'`jer` = '.$_POST['jer'].','
  15.                     .'`soz` = '.$_POST['soz'].','
  16.                     .'`work` = '.$_POST['work'].','
  17.                     .'`phone` = '.$_POST['phone'].','
  18.                     .'WHERE `id` = '.$_GET['red_id']);
  19.         }
  20.     }

Объяснение кода листинга программы

  1. Проверяется, передана ли переменная на редактирования ($_GET['red_id']).
  2. Если новое имя предано, то обновляются и имя и цену.
  3. Код SQL для обновления записи в базе данных.
  4. Проверяется, существуют ли значения в полях name, regis, relat, birth, uch, street, home, kvart, pasp, bio, jer, soz, work, phone.
  5. Если значения отсутствуют, то код не будет работать корректно.
  6. WHERE-условие для выбора нужной записи из базы данных.
  7. Убедитесь, что переменные $_POST['name'], $_POST['regis'], $_POST['relat'], $_POST['birth'], $_POST['uch'], $_POST['street'], $_POST['home'], $_POST['kvart'], $_POST['pasp'], $_POST['bio'], $_POST['jer'], $_POST['soz'], $_POST['work'], $_POST['phone'] содержат действительные данные.
  8. Убедитесь, что $_GET['red_id'] содержит действительное значение.
  9. Убедитесь, что вы используете правильные имена полей в SQL запросе.
  10. Используйте подготовленные выражения (prepared statements) для предотвращения SQL-инъекций.
  11. Не используйте функции mysql_* для работы с базой данных, предпочтительнее использовать PDO или mysqli_*.
  12. Если код продолжает работать некорректно, проверьте ошибки в SQL запросе.
  13. Проверьте, не превышает ли длина строки значение в 2048 символов (включая кавычки).
  14. Если запись в базе данных не обновляется, проверьте, не изменяется ли запись в этот момент другим пользователем.
  15. Если код продолжает работать некорректно, проверьте, не содержит ли $_POST недопустимых символов.
  16. Проверьте, что $_GET['red_id'] не содержит недопустимых символов.
  17. Если код продолжает работать некорректно, проверьте, не вызывает ли другое приложение или система ошибки в SQL запросе.
  18. Проверьте, не были ли внесены изменения в структуру таблицы mtu4.
  19. Проверьте, не были ли внесены изменения в значения полей таблицы mtu4.
  20. Если проблема не устранена, обратитесь за помощью к специалисту.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 4.154 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут