PHP变量与数组

时间:2010-05-11 09:49:45

标签: php mysql

我正在尝试制作“更新用户权限”页面。 它类似于你在invisionfree论坛中可以找到的东西。

我需要它来生成一个带有复选框[done]的成员列表 为它添加一个选项[完成]

我不知道该怎么做就是更新,比如给所有选定的用户提供所选的权力。

然后我去寻找一些东西,发现其中大部分使用数组来做到这一点,但我从来没有找到一个真正解释它是如何工作的。

我采取的例子(经过我自己的修改)是:

while($row = mysql_fetch_array($result))
{
echo    '<tr>'.$id[]=$rows['id'].'';
echo    '<td width="50px" align="center" class="TableFormCell"><input type="checkbox" name="option[]" /></td>';
echo    '<td width="170px" align="center" class="TableFormCell">'.$row['uname'].'</td>';
echo    '</tr>';
}
  

我不确定到底是什么    $ id [] = $ rows ['id'] 执行

     

我知道在行之后,我的选项[]将成为选项[1],选项[2],选项[3]

的数组

应该给予什么样的权力,我没有问题但是如何更新数据库我没有任何线索......

for($i=0;$i<$count;$i++){
$sql1="UPDATE ninos SET power='$power' WHERE id='$option[$i]'";
$result1=mysql_query($sql1);
}

所以说我有5个用户,Aye,Bee,Cee,Dee,Eee,ID为1,2,3,4,5,我怎样才能使我的脚本像

一样运行
$sql1="UPDATE ninos SET power = '$power' Where id='1','2','3','4','5'";

请帮助,谢谢。

更新

for nuqqsa

这是选择页面     

$result = mysql_query("SELECT * FROM ninos");
while($row = mysql_fetch_array($result))
  {
echo    '<tr>';
echo    '<td width="50px" align="center" class="TableFormCell"><input     type="checkbox" name="option[]" value="' . $row['id'] . '" /></td>';
echo    '<td width="170px" align="center" class="TableFormCell">'.$row['uname'].'</td>';
echo    '</tr>';
}
?>

这是更新页面

<?php
include('../openconn.php');

$power = $_POST['power'];

$ids = array();
foreach($_POST['option'] as $id)
{
$ids[] = (int)$id;
}   

if(!empty($ids)) {
// if there's at least one selected user
$sql1 = "UPDATE ninos SET power = '$power' Where id IN (" . implode(',', $ids) . ")";
// execute the query (...)
}


include('../closeconn.php');
?>

1 个答案:

答案 0 :(得分:1)

首先,这没有多大意义(赋值不会输出任何可打印的内容):

echo '<tr>'.$id[]=$rows['id'].'';

这样做却更清楚(第一行,因为在循环中,将继续存储数组中的所有ID):

$id[] = $rows['id'];
echo '<tr>';

<强>更新: 无论如何,这里不需要将ID存储在数组中,只需使用$row['id']在选项值中打印用户标识符(现在没有设置值):

while($row = mysql_fetch_array($result))
{
echo    '<tr>';
echo    '<td width="50px" align="center" class="TableFormCell"><input type="checkbox" name="option[]" value="' . $row['id'] . '"/></td>';
echo    '<td width="170px" align="center" class="TableFormCell">'.$row['uname'].'</td>';
echo    '</tr>';
}

表单操作脚本将收到包含所选ids的$_POST['option']变量。如何使用它的一个例子:

$ids = array();
// input filtering: convert all values to integers
foreach($_POST['option'] as $id)
{
    $ids[] = (int)$id;
}    
if(!empty($ids)) {
    // if there's at least one selected user
    $sql1 = "UPDATE ninos SET power = '$power' Where id IN (" . implode(',', $ids) . ")";
    // execute the query (...)
}