0

ユーザーの操作に基づいてテーブルを更新しようとしています。助けてください。ユーザーが編集を選択してもクエリを送信しても何も起こらず、テーブルを更新する必要があります。何が間違っていますか?

if ($action == "edit"){


$edit = $_POST['edit'];
$first_name = $_POST['first_name'];
$last_name = $_POST['last_name'];
$email = $_POST['email'];


$sql=mysql_query("select * from user where id='$id'");

   while ($row=mysql_fetch_array($sql)) 
 {                                                                                                                                                                                                                                                     
$id = $row['id'];
$first_name = $row['first_name'];
$last_name = $row['last_name'];
$email = $row['email'];

$result=mysql_query("UPDATE user SET first_name='$first_name',last_name='$last_name',email='$email' WHERE id='$id'");


echo("<form name='edit' method='post' action='?action=edit'>");
echo("<input type='hidden' name='?action=edit'>");
echo("<table class=main cellspacing=0 cellpadding=5 >");
echo("<tr><td>Name: </td><td align='right'><input type='text' name='first_name' value='$first_name'></td></tr>");
echo("<tr><td>Surname: </td><td align='right'><input type='text'  name='last_name' value='$last_name'></td></tr>");
echo("<tr><td>Email: </td><td align='right'><input type='text' name='email' value='$email'></td></tr>");
echo("<tr><td></td><td><div align='right'><input type='submit'></div></td></tr>");
echo("</table>");
     }    
         }
4

2 に答える 2

0

フォームがユーザーによって送信されたかどうかを確認する必要があります

if ($_SERVER['REQUEST_METHOD'] === 'POST') { 
    $id = $_POST['id'];
    $edit = $_POST['edit'];
    $first_name = $_POST['first_name'];
    $last_name = $_POST['last_name'];
    $email = $_POST['email'];
    $result=mysql_query("UPDATE user SET first_name='$first_name',last_name='$last_name',email='$email' WHERE id='$id'");
}

セキュリティも確認してください。mysql_real_escape_string を使用してください。

また、チェックを大きくしたり、送信ボタンが押されたかどうかを確認したりすることもできます...

于 2013-05-17T20:16:48.890 に答える
0

取得した結果でデータベースを更新しています。

行を選択する前に、データベースを更新する必要があります。

いくつかの注意:フォームに設定していませんid(非表示の入力にする可能性があります)。私が見ている最大の問題は、最初に ID を設定していないことです (つまり、$_POST データがない場合)。

さらに、 PDOまたはmysqliを使用する必要があります。

if($_POST){
    $id = $_POST['id'];
    $edit = $_POST['edit'];
    $first_name = $_POST['first_name'];
    $last_name = $_POST['last_name'];
    $email = $_POST['email'];
    $result=mysql_query("UPDATE user SET first_name='$first_name',last_name='$last_name',email='$email' WHERE id='$id'");
}

$sql=mysql_query("select * from user where id='$id'");

while ($row=mysql_fetch_array($sql)){                                             
    $id = $row['id'];
    $first_name = $row['first_name'];
    $last_name = $row['last_name'];
    $email = $row['email'];


    echo("<form name='edit' method='post' action='?action=edit'>");
    echo("<input type='hidden' name='?action=edit'>");
    echo("<table class=main cellspacing=0 cellpadding=5 >");
    echo("<tr><td>Name: </td><td align='right'><input type='text' name='first_name' value='$first_name'></td></tr>");
    echo("<tr><td>Surname: </td><td align='right'><input type='text'  name='last_name' value='$last_name'></td></tr>");
    echo("<tr><td>Email: </td><td align='right'><input type='text' name='email' value='$email'></td></tr>");
    echo("<tr><td></td><td><div align='right'><input type='submit'></div></td></tr>");
    echo("</table>");
}
于 2013-05-17T20:11:34.373 に答える