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