Где я ошибку допустил посмотрите код - 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
. - Если проблема не устранена, обратитесь за помощью к специалисту.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д