我正在创建一个表单,用户在其中设置数据库中用户名的访问级别,表单显示一个复选框和用户名。
这是下面的表格。它使用数据库填充。
<?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让我在正确的地方:)
答案 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).")");
}
?>
您可以添加自己的其他验证和过滤。