通过复选框插入

时间:2010-11-01 10:37:21

标签: php sql checkbox insert while-loop

我创建了一个页面来显示特定经理之下或之下的所有用户。如果用户已注册,他的帐户将被停用,直到该人关注激活它。我已经显示了所有用户以及是否要停用或激活的复选框。在提交时,insert命令不起作用,并且数据库中没有任何更改。我有隐藏但不能应用它的用户ID。能帮帮我吗

<?php

//get userid from login session

        $memberid = $_SESSION['SESS_MEMBER_ID'];

    //display all users concerning the user(login) is leader
        $sql = mysql_query("SELECT * FROM user WHERE userid in (SELECT userid FROM dept_user WHERE lead_id = '$memberid')");

       //display results in table
        print '<table border=1>';

print '<tr><td>Activate</td><td>First Name</td><td>Last Name</td><td>Email</td>td>Activate</td>';

print '<form method="GET" action="'.$PHP_SELF.'">';

$count = 0;

  while($res = mysql_fetch_array($sql)){

 $activate = $res['activate'];

 $checked = '';

$user = $res['userid'];

  if ($activate=='1'){

$checked = 'checked';

        }

 print '<tr><td><input type="checkbox" value="'.$user.'" name="activate[]" '.$checked.'></td>';

 print '<td>'.$res['firstname'].'</td>';

 print '<td>'.$res['lastname'].'</td>';

  print '<td>'.$res['email'].'</td>';

  print '<td>'.$res['activate'].'</td></tr>';

  print '<input type="hidden" name="userid" value="'.$user.'">';

   $count++;

  }

  print '</table>';


print '<br />With selected do:<br />';

print '<select name="useridselect">';

print '<option value="Select">Select</option>';

print '<option value="1">Activate</option>';

print '<option value="0">Desactivate</option>';

print '</select>';

print '<br /><input type="submit" value="Submit" name="submit">';

print '</form>';

    $useridselect = $_GET['useridselect'];

if(isset($_GET['submit'])){

foreach($_GET['activate'] as $value){

print_r($value);

$update=mysql_query("UPDATE user SET activate='$useridselect' WHERE userid='$user'");
        }

for($i=0;$i<$count;$i++){

$sql1="UPDATE user SET activate='$useridselect' WHERE userid='$user'";

$result1=mysql_query($sql1);

}

}   else{

echo 'No actions yet performed';

}

?>

3 个答案:

答案 0 :(得分:1)

我认为您的更新查询失败了,因为您没有分配复选框值:


foreach($_GET['activate'] as $value){

print_r($value);
//Here instead of userid='$user' should be userid='$value'
$update=mysql_query("UPDATE user SET activate='$useridselect' WHERE userid='$value'");
}

我不明白下面代码的目的。

for($i=0;$i<$count;$i++){

$sql1="UPDATE user SET activate='$useridselect' WHERE userid='$user'";

$result1=mysql_query($sql1);

}

注意:请确保选中至少一个复选框。

答案 1 :(得分:0)

将您的GET方法更改为POST方法,因此隐藏值也会对脚本进行POSTED。此外,更容易分离数据库逻辑,而不是一遍又一遍地引用相同的脚本。

答案 2 :(得分:0)

您可以按照相同的逻辑删除。使用值为user id

的复选框数组