2010-11-01 116 views
0

我创建了一个页面来显示关于或低于特定经理的所有用户。如果用户已经注册,他的账户将被停用,直到有关人员激活它为止。我已显示所有用户和复选框是否停用或激活。在提交时,插入命令不起作用,并且数据库中没有任何内容被更改。我有隐藏的用户标识,但不能应用它。请帮助我通过复选框插入

<?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'; 

} 

?> 
+0

定义“不工作”。发生了什么或没有发生?查询是什么样的? – 2010-11-01 10:41:43

+0

数据库选择和数据库连接的命令在哪里? – Victor 2010-11-01 10:48:22

+0

连接在另一个文件上..除了保存阶段以外的所有工作。不能处理useid。我需要设置1为激活,0为禁用 – vimal 2010-11-01 11:02:14

回答

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); 

} 

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

+0

thx dr。它的工作。 suposed我希望在combox box上添加另一个选项来删除记录。是否有可能在? – vimal 2010-11-01 11:38:33

+0

是的,这是可能的。 – 2010-11-01 12:20:07

0

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

0

您也可以按照相同的逻辑进行删除。使用值为userid的复选框阵列