0

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

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

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

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

-编辑- 抱歉忘记放操作页面。

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

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

----EDIT 2---- 我已经做到了,而且效果很好!感谢 dianuj 让我在正确的地方:)

4

2 回答 2

1

首先,您必须将名称更正checkboxarraychecbox

 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]

update table set role..... where userid ='your $_REQUEST value'

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

于 2013-04-11T20:03:22.103 回答
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).")");


}
?>

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

于 2013-04-11T20:04:04.240 回答