![]() |
Задавайте вопросы, мы ответим
Вы не зашли.
Проблема заключаеться в следующем, когда нажимаю изменить, у меня изменяються все строки в базе данных, а не именно та строка которую я хочу изменить, а добавляет и удаляет нормально, вот скрипт:
<html>
<head>
<title>Пробуем)))</title>
</head>
<body>
<?require ("connectdb.inc.php");?>
<?if(isset($users)):?>
<table width="1000" border="1" cellspacing="0" cellpadding="0" align="center">
<tr align="center">
<td>Номер</td>
<td>Имя</td>
<td>Фамилия</td>
<td>Рост</td>
<td>Вес</td>
<td>Изменить/Удалить</td>
</tr>
<?$sql=mysql_query("select*from users");
while($row=mysql_fetch_array($sql)) {
$id=$row['id'];
$name=$row['name'];
$name2=$row['name2'];
$rost=$row['rost'];
$ves=$row['ves'];
?>
<form METHOD="POST" ACTION="index.php?id=<?=$id;?>">
<tr align="center">
<td><?=$id;?></td>
<td><?=$name;?></td>
<td><?=$name2;?></td>
<td><?=$rost;?></td>
<td><?=$ves;?></td>
<td><INPUT TYPE="submit" name="readd" value="Изменить"><br>
<INPUT TYPE="submit" name="delete" value="Удалить"></td>
</tr>
</form>
<?}?>
</table>
<?
elseif(isset($delete)):
$result = mysql_query("delete from users where id='$id'");
if ($result == 'true')
{echo "Человек удален";}
else
{echo "Не хочет удаляться";}
elseif(isset($readd)):
if(isset($par)):
$result = mysql_query ("UPDATE users SET name='$name1', name2='$name3', rost='$rost1', ves='$ves1'");
if ($result == 'true')
{echo "Данные успешно обновлены.";}
else
{echo "Данные не обновлены!";}
?>
<BR><BR><BR>
<?
else:?>
<?$sql=mysql_query("select*from users");
$row=mysql_fetch_array($sql);
$name=$row['name'];
$name2=$row['name2'];
$rost=$row['rost'];
$ves=$row['ves'];?>
<FORM METHOD=POST ACTION="index.php">
Номер <INPUT TYPE="text" value="db" NAME="par"><br>
Имя было <?=$name?> станет <INPUT TYPE="text" NAME="name1"><BR>
Фамилия была <?=$name2?> станет <INPUT TYPE="text" NAME="name3"><BR>
Рост был <?=$rost?> станет <INPUT TYPE="text" NAME="rost1"><BR>
Вес был <?=$ves?> станет <INPUT TYPE="text" NAME="ves1"><BR>
<INPUT TYPE="submit" name="readd" value="Изменить">
</FORM>
<?endif;?>
<? elseif(isset($add)):
if(isset($par1)):
mysql_query("insert into users values (null, '$name','$name2','$rost','$ves');");
echo "Человек добавлен";?>
<?else:?>
<FORM METHOD=POST ACTION="index.php">
<table width="1000" border="1" cellspacing="0" cellpadding="0" align="center">
<tr align="center">
<td>Константа</td>
<td>Имя</td>
<td>Фамилия</td>
<td>Рост</td>
<td>Вес</td>
</tr>
<tr align="center">
<td><INPUT TYPE="text" value="db" NAME="par1"></td>
<td><INPUT TYPE="text" NAME="name"></td>
<td><INPUT TYPE="text" NAME="name2"></td>
<td><INPUT TYPE="text" NAME="rost"></td>
<td><INPUT TYPE="text" NAME="ves"></td>
</tr>
<tr align="center">
<td colspan="3"><INPUT TYPE="submit" name="add" value="::Сохранить::"></td>
<td colspan="2"><INPUT TYPE="reset" value="::Очистить::"></td>
</tr>
</table>
<?endif;?>
<?
else:
$sql=mysql_query("select*from users");
$num=mysql_num_rows($sql);
?>
<FORM METHOD="get" ACTION="index.php">
<table width="200" border="1" cellspacing="0" cellpadding="0" align="center">
<tr align="center">
<td><INPUT TYPE="submit" name="users" value="Люди <?=$num?>"></td>
</tr>
<tr align="center">
<td><INPUT TYPE="submit" name="add" value="Добавить людей"></td>
</tr>
</table>
</FORM>
<?endif;?>
<br><br>
<center><a href="index.php">На Главную</a></center>
</body>
</html>Поскажите что неправильно
Неактивен
Чтобы изменялась одна строка, нужно условие указать, при котором замена идёт.
то есть не
"UPDATE users SET name='$name1', name2='$name3', rost='$rost1', ves='$ves1'"
а что-то вроде
"UPDATE users SET name='$name1', name2='$name3', rost='$rost1', ves='$ves1' where user.id=$id"
где id - идентификатор пользователя
И между прочим
$result = mysql_query ("UPDATE users SET name='$name1', name2='$name3', rost='$rost1', ves='$ves1'");
if ($result == 'true')
вот так неправильно, см http://www.php.su/functions/?mysql-query
Функция возвращает либо идентификатор набора записей (если запрос на выборку, иначе TRUE), либо FALSE в случае неудачи. 'true' и TRUE - не одно и то же.
Отредактированно deadka (12.11.2011 16:53:27)
Неактивен
Теперь вообще ничего не обновляет((( НЕ понятно
Неактивен
Все сделал)))) Спасибо за внимание)))
Неактивен