PHP表格复选框

时间:2013-04-11 19:46:47

标签: php mysql forms

我正在创建一个表单,用户在其中设置数据库中用户名的访问级别,表单显示一个复选框和用户名。

这是下面的表格。它使用数据库填充。

<?php
require '../Pages/Database Actions/Database_Connect.php';
$result = mysql_query("SELECT * FROM members");
$row = mysql_fetch_array($result);
$row_num = mysql_num_rows($result);

echo '<table class="setuseraccess_title"><tr><td class="comitttiemembers_title"><h3 align="center">User Access Levels</h3></td></tr></table><br />';
echo'<form class="setuseraccess" action="index.php?page=member-profile" method="post"><table>';

for ($val = 0; $val < $row_num; $val++)
{
    echo '<tr><td><input type=\'checkbox\' name=\'SetAccess\' value=\''.$row['username'].'\' /></td>
        <td>'.$row['username'].'</td><td>'.$row['accesslevel'].'</td></tr>';
    $row = mysql_fetch_array($result);
}

echo '<tr><td colspan="3"><br /><select name="useraccesslevel">
<option value="0">Access Level 0</option>
<option value="1">Access Level 1</option>
<option value="2">Access Level 2</option>
<option value="3">Access Level 3</option>
<option value="4">Access Level 4</option>
<option value="5">Access Level 5</option>
</select><br /></td></tr>';
echo'<tr><td colspan="3"><br /><input class="member-buttons" type="submit" name="mb" value="Set Access" /><br /></td></tr></table></form>';
?>

如何更新数据库中用户的访问级别?我也不确定我的复选框值是否应该是玩家用户名。这样做的最佳方式是什么?

CNC中 对不起忘了放行动页面。

<?php
if(isset($_POST['useraccesslevel']))
{
    $Alevel = trim($_POST['useraccesslevel']);
    echo $Alevel;

    $result = mysql_query("SELECT * FROM members");
    $row = mysql_fetch_array($result);
    $row_num = mysql_num_rows($result);

    for ($val = 0; $val < $row_num; $val++)
    {
        if(isset($_POST[$row['username']]))
        {
            $sql="UPDATE `wohsa`.`members` SET `accesslevel` = '" + $Alevel + "' WHERE `members`.`username` = '" + $_POST[$row['username']] + "';";
            $result1=mysql_query($sql);
        }
    }
}
?>

这是我尝试更新数据库中的值的操作页面

----编辑2 ---- 我做到了,效果很好!感谢dianuj让我在正确的地方:)

2 个答案:

答案 0 :(得分:1)

首先,您必须将checkbox的名称更改为array的{​​{1}}

checbox

当您提交 for ($val = 0; $val < $row_num; $val++) { echo '<tr><td><input type=\'checkbox\' name=\'SetAccess[]\' value=\''.$row['username'].'\' /></td> <td>'.$row['username'].'</td><td>'.$row['accesslevel'].'</td></tr>'; $row = mysql_fetch_array($result); } 时,您可以访问form中每次使用的值或ID,并将$_REQUEST[SetAcces][index]查询循环运行到update的长度

$_REQUEST[SetAcces][index]

不是一个完整的功能,但提出一个想法 希望这有帮助

答案 1 :(得分:0)

<?php

if(isset($_POST['mb'])){

$usernames = array();
foreach($_POST['SetAccess'] as $key=>$value)
$usernames[] = "'".$value."'";

$accesslevel = $_POST['useraccesslevel']

mysql_query("UPDATE `members` SET `accesslevel` = '".$accesslevel."' WHERE `username` IN (".implode(",",$usernames).")");


}
?>

您可以添加自己的其他验证和过滤。