Перейти к содержимому



Помогите с update

#1 Виталик

Виталик
  • Пользователь
  • 18 сообщений
  • Репутация: 0
0

Отправлено 10 Март 2012 - 21:08

Форумчане,помогите разобраться,никак у меня не получается отредактировать данные.
Не пойму, что не так. Объясните, пожалуйста, вот на этом примере.
Огромное спасибо.

$name=($_POST['name']);
$update=($_POST['update']);
$id=($_POST['id']);
if(@$update){
$sql="UPDATE msgs SET name='$name' WHERE id=$id";}
mysql_query($sql) or die (mysql_error());

$sql="SELECT name,id from msgs";
$res=mysql_query($sql);
while($row=mysql_fetch_assoc($res)){
?>
<form action="u.php?id=<?=$row['id']?>" method="post">
<input type="text" name="name" value="<?=$row['name']?>">
<input name="update" type="submit" value="сохранить" />
</form>
<?
}

?>

 

 

  • 0

#2 matroskin8

matroskin8
  • Пользователь PRO
  • 767 сообщений
  • Репутация: 143

Отправлено 10 Март 2012 - 22:10

Ну так Вы бы и описали подробнее в чем проблема и что не так происходит. На первый взгляд проблемы такие:
1. Хотя для формы и указан метод передачи данных POST, но переменной id в массиве POST Вы не найдете. Постом передаются данные из формы (поля, области и т.д.). Здесь же переменная передается параметром через адресную строку:

<form action="u.php?id=<?=$row['id']?>" method="post">

Соответственно, получать эту переменную необходимо из массива GET... вот так:
$id = (int)GET['id'];
2. Вот это вот:

@$update

тоже безобразие :) это еще мягко сказано.
3. Не проблема, но все же... зачем заключать в скобки переменные?
В общем, где-то так должно выглядеть все:
<?php
if($_POST['update']){
    $name = mysql_real_escape_string($_POST['name']);
    $id = (int)$_GET['id'];
    $sql = "UPDATE msgs SET name='$name' WHERE id=$id";}
    mysql_query($sql) or die (mysql_error());
    $sql = "SELECT name,id from msgs";
    $res = mysql_query($sql);
    while($row = mysql_fetch_assoc($res)){
?>
	    <form action="u.php?id=<?=$row['id']?>" method="post">
		    <input type="text" name="name" value="<?=$row['name']?>">
		    <input name="update" type="submit" value="сохранить" />
	    </form>
    <?php
    }
}
?>

  • 0


#3 yury

yury
  • Пользователь
  • 629 сообщений
  • Репутация: 176

Отправлено 11 Март 2012 - 08:10

<form action="u.php?id=<?=$row['id']?>" method="post">
в этом месте вообще что-то странное: какой-то винигрет из php-шных инструкций и параметров адресной строки, но на самом деле ни то ни другое.
Скорее всего, надо как-то так

<form action="u.php?id=<?php echo $row['id']; ?>" method="post">

  • 0


Оформление форума – IPBSkins.ru