将数据更新到数据库时出错

时间:2016-01-17 21:21:03

标签: php database button post get

我试图创建一个管理员页面,管理员必须在用户登录前批准用户注册。我试图在此页面中显示已注册但仍在等待的所有用户管理员批准登录。所以我想创建一个靠近每个未确认用户的按钮,其值为"是"给管理员批准他的帐户的可能性。如果"是"按钮由管理员设置,用户应该被批准,因此存储在我的数据库中的approval字段应该更新为1.这是想法。当执行代码时,按钮被显示但没有更新字段approval

按钮也会显示但不起作用。有人可以帮助我制作"是"按钮功能? 这是我的代码:



<html >
<head>
<title></title>
</head>

<body>
<?php
if( !($database=mysql_connect("localhost","root",""))||!(mysql_select_db("st_login",$database))  )
   print("Could not connect");
if(isset($_POST['yes'])){

     $id = intval($_POST['id']);
$update_query= "UPDATE login SET `approval`=1 WHERE `id` = '".$id."'";
mysql_query($update_query,$database);
 }

$query = "SELECT * FROM `login` WHERE `admin` =0";
 if(!($result=mysql_query($query,$database)))
{
    print("Could not execute query");
    die (mysql_error());//ose error
} else
  while($query_row=mysql_fetch_assoc($result))
  {

 $firstname=$query_row['firstname'];
$lastname=$query_row['lastname'];
$username=$query_row['username'];
$password=$query_row['password'];
$email=$query_row['email'];
$cv=$query_row['cv'];
$id=$query_row['id'];

if($query_row['approval']==0){
  echo "this user is waiting for you approval";
echo $firstname.'   '.$lastname.'  has this cv:'.$cv.'<br />
Do you want to approve his account?
<form action="admin.php" method="post">
<input  type="text" style="display: none;" value="$id" name="id">
<input  type="submit" value="yes" name="yes">
</form>
<br/>';
}
}
mysql_close($database);
?>
</body>
</html>
&#13;
&#13;
&#13;

是否有人帮我更新?提前致谢!

2 个答案:

答案 0 :(得分:0)

将按钮更改为

<form action="admin.php" method="post"><input type="submit" value="'.$id.'" name="id"></form><br />';

这样整个回声就会

echo $firstname.' '.$lastname.' has this cv:'.$cv.'<br /> Do you want to approve his account? <form action="admin.php" method="post"><input type="submit" value="'.$id.'" name="id"></form><br />';

表单元素的name是您应该期望成为$_POST数组中的键的内容,value是您应该期望的$_POST['id']的值1}}

另外,您应该使用$_POST而不是$_GET,因为您已将表单方法指定为post

答案 1 :(得分:0)

您应该更改代码的最后一部分。你的表单方法是POST,但你正试图通过GET获取id。你不能这样做,你不能像这样从输入中获取id。

这是你应该做的:

if($query_row['approval']==0){
  echo "this user is waiting for you approval";
echo $firstname.'   '.$lastname.'  has this cv:'.$cv.'<br />
Do you want to approve his account?
<form action="admin.php" method="post">
<input  type="hidden" value="$id" name="id">
<input  type="submit" value="yes" name="yes">
</form>
<br/>';
}

}
mysql_close($database);
?>

在线

$id = intval($_GET['id']);

应该变成

 $id = intval($_POST['id']);