Где я ошибку допустил посмотрите код - 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']);
- }
- }
Объяснение кода листинга программы
- Проверяется, передана ли переменная на редактирования (
$_GET['red_id']
). - Если новое имя предано, то обновляются и имя и цену.
- Код SQL для обновления записи в базе данных.
- Проверяется, существуют ли значения в полях
name
,regis
,relat
,birth
,uch
,street
,home
,kvart
,pasp
,bio
,jer
,soz
,work
,phone
. - Если значения отсутствуют, то код не будет работать корректно.
- WHERE-условие для выбора нужной записи из базы данных.
- Убедитесь, что переменные
$_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']
содержат действительные данные. - Убедитесь, что
$_GET['red_id']
содержит действительное значение. - Убедитесь, что вы используете правильные имена полей в SQL запросе.
- Используйте подготовленные выражения (
prepared statements
) для предотвращения SQL-инъекций. - Не используйте функции
mysql_*
для работы с базой данных, предпочтительнее использоватьPDO
илиmysqli_*
. - Если код продолжает работать некорректно, проверьте ошибки в SQL запросе.
- Проверьте, не превышает ли длина строки значение в 2048 символов (включая кавычки).
- Если запись в базе данных не обновляется, проверьте, не изменяется ли запись в этот момент другим пользователем.
- Если код продолжает работать некорректно, проверьте, не содержит ли
$_POST
недопустимых символов. - Проверьте, что
$_GET['red_id']
не содержит недопустимых символов. - Если код продолжает работать некорректно, проверьте, не вызывает ли другое приложение или система ошибки в SQL запросе.
- Проверьте, не были ли внесены изменения в структуру таблицы
mtu4
. - Проверьте, не были ли внесены изменения в значения полей таблицы
mtu4
. - Если проблема не устранена, обратитесь за помощью к специалисту.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д