我试图让我的查询在用户点击时更新 这一个在这里工作,但它不想更新我说查询空
我编写了如下代码
if ($action == "edit"){
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$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($result) or die (mysql_error());
}
$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>");
}
}
echo("<br>");
echo("</form>");
我添加了$sql = mysql_query($result) or die (mysql_error());
上面的一行显示了执行时查询包含的错误时间...任何关于查询为何为空的想法以及表中是否有数据?
此代码将在点击此链接时运行
echo"<a href='test.php?action=edit&id=$id'>Edit</a>";
答案 0 :(得分:1)
你没有抓住id
的价值。正如您在URL中编写的那样,它通过GET传输,其余数据通过POST传输。所以你要么必须作为POST var进行传输:
<input type="hidden" name="id" value="$id"/>
通过PHP捕捉它:
$id = $_POST['id'];
或者让它按原样使用并将其作为GET变量捕获:
$id = $_GET['id'];
但是:这段代码非常不安全。我建议您搜索sql injection
和类似主题..
答案 1 :(得分:0)
if (isset($_POST["hdn_edit"]) && $_POST["hdn_edit"]=="edit")
{
$first_name = $_POST['first_name'];
$last_name = $_POST['last_name'];
$email = $_POST['email'];
$id=$_POST["hdn_id"];
$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=''>");
echo("<input type='hidden' name='hdn_edit' value='edit'>");
echo("<input type='hidden' name='hdn_id' value='$id'>");
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>");
}
echo("<br>");
echo("</form>");