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

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

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

Помогите.. где я ошибку допустил не редактируется проблемы с 'relat' когда его нет все просто работает, но когда добавляю больше столбцов то не идет.
 <!doctype html>
<html lang="ru">
<head>
<title>Админ-панель</title>
</head>
<body>
<?php
    $host="localhost";    //хост
    $user="root";        //пользователь
    $pass="";             //установленный вами пароль
    $db_name="mtu";    //название бд
    $link=mysql_connect($host,$user,$pass); //коннектимся
    mysql_select_db($db_name,$link);        //выбираем БД
    
    if (isset($_GET['del_id'])) { //проверяем, есть ли переменная на удаление
        $sql = mysql_query('DELETE FROM `mtu4` WHERE `id` = '.$_GET['del_id']); //удаляем строку из таблицы
    }
    
    if (isset($_GET['red_id'])) { //Проверяем, передана ли переменная на редактирования
        if (isset($_POST['name'])) { //Если новое имя предано, то обновляем и имя и цену
            $sql = mysql_query('UPDATE `mtu4` SET '
                    .'`name` = "'.$_POST['name'].'",'
                    .'`regis` = '.$_POST['regis'].' ' 
                    .'`relat` = '.$_POST['relat'].' '
                    .'WHERE `id` = '.$_GET['red_id']);
        }
    }
?>
<table border='1'>
<tr>
    <td></td>
    <td>А.А.А. / ФИО:</td>
    <td>Каттоосу / Прописка:</td>
    <td>Туугандыгы / Степ. родства</td>
</tr>
<?php
$sql = mysql_query("SELECT `id`, `name`, `regis`, `relat` FROM `mtu4`", $link);
while ($result = mysql_fetch_array($sql)) {
    echo     '<tr><td>'.$result['id'].'</td>'.
             '<td>'.$result['name'].'</td>'.
             '<td>'.$result['regis'].'</td>'.
             '<td>'.$result['relat'].'</td>'.
             '<td><a href="?del_id='.$result['id'].'">Удалить</a></td>'.
             '<td><a href="?red_id='.$result['id'].'">Редактировать</a></td></tr>';
}
?>
</table>
 
<?php
    if (isset($_GET['red_id'])) { //Если передана переменная на редактирование
        //Достаем запсись из БД
        $sql = mysql_query("SELECT `id`, `name`, `regis`, `relat` FROM `mtu4` WHERE `id`=".$_GET['red_id'], $link); //запрос к БД
        $result = mysql_fetch_array($sql); //получение самой записи
        
        ?>
<table>
<form action="" method="post">
    <tr>
        <td>А.А.А. / ФИО:</td>
        <td><input type="text" name="name" size="80" value="<?php echo ($result['name']); ?>"></td>
    </tr>
    <tr>
        <td>Каттоосу / Прописка:</td>
        <td><input type="text" name="regis" size="10" value="<?php echo ($result['regis']); ?>"></td>
    </tr>
    <tr>
        <td>Туугандыгы / Степ. родства</td>
        <td><input type="text" name="relat" size="20" value="<?php echo ($result['relat']); ?>"></td>
    </tr>
    <tr>
        <td colspan="2"><input type="submit" value="ok"></td>
    </tr>
</form>
</table>
        <?php
    }
?>
 
</body>
</html>

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

textual
Листинг программы
    if (isset($_GET['red_id'])) { //Проверяем, передана ли переменная на редактирования
        if (isset($_POST['name'])) { //Если новое имя предано, то обновляем и имя и цену
            $sql = mysql_query('UPDATE `mtu4` SET '
                    .'`name` = "'.$_POST['name'].'",'
                    .'`regis` = '.$_POST['regis'].',' 
                    .'`relat` = '.$_POST['relat'].','
                    .'`birth` = '.$_POST['birth'].','
                    .'`uch` = '.$_POST['uch'].','
                    .'`street` = '.$_POST['street'].','
                    .'`home` = '.$_POST['home'].','
                    .'`kvart` = '.$_POST['kvart'].','
                    .'`pasp` = '.$_POST['pasp'].','
                    .'`bio` = '.$_POST['bio'].','
                    .'`jer` = '.$_POST['jer'].','
                    .'`soz` = '.$_POST['soz'].','
                    .'`work` = '.$_POST['work'].','
                    .'`phone` = '.$_POST['phone'].','
                    .'WHERE `id` = '.$_GET['red_id']);
        }
    }

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

  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