我有一个管理员区域,管理员可以在其中设置修复级别,并在用户区域的进度条上显示。除了将mySQL数据库更新为提交的值之外,我已经完成了所有工作。
我的数据库有一个名为'users'的表,字段'UserID','Username','Password','progress','admin'。
以下是我用来试图让魔术发生的代码:
<?php
$query="SELECT * FROM users";
$result=mysql_query($query);
$num=mysql_numrows($result);
?>
<form id="chooseuseredit" method="post" action="<?php echo $PHP_SELF;?>">
<select name="ChooseUser">
<?php
$i=0;
while ($i < $num) {
$f1=mysql_result($result,$i,"UserID");
$f2=mysql_result($result,$i,"Username");
$f3=mysql_result($result,$i,"progress");
$f4=mysql_result($result,$i,"admin");
?>
<option value="<?php echo $f1; ?>"><?php echo $f2; ?></option>
<?php
$i++;
}
?>
</select>
<input type="submit" name="chooseSubmit" id="chooseSubmit" value="Choose User" />
</form>
<?php
if(isset($_POST['chooseSubmit']) )
{
$varID = $_POST['ChooseUser'];
$errorMessage = "Jesus Christ Benton, Choose a User!!";
?>
<br>
<p><strong>Editing UserID: <?php echo "$varID"; ?></strong></p>
<p>Progress:<br>
<form name="edituserform" method="post" action="<?php echo $PHP_SELF;?>">
<select name="editinguser">
<option value="0">Phone Not Recieved</option>
<option value="20">Phone Recieved</option>
<option value="40">Parts Recieved</option>
<option value="60">Repair Started</option>
<option value="80">Repair Finished</option>
<option value="100">Posted Back</option>
</select>
<input type="hidden" name="edituserid" id="edituserid" value="<?php echo "$varID"; ?>" />
<input type="submit" name="edituser" id="edituser" value="Edit" />
</form>
<?php
if(isset($_POST['edituser'])){
$add = $_POST['edituser'];
$varIDe = $_POST['edituserid'];
$errorMessage = "Jesus Christ Benton, Choose a User!!";
$query1 = mysql_query("UPDATE users SET progress = $add WHERE UserID = $varIDe");
mysql_query($query1) or die("Cannot update");
echo $add;
echo $varIDe;
}
?>
<?php
}
?>
我不确定变量是否有效,或者我之前使用过提交按钮的方式是什么?它让我有点难过。
答案 0 :(得分:2)
您的查询应该是
$query1 = mysql_query("UPDATE users SET progress = '$add' WHERE UserID = $varIDe");
别忘了引号
最好改变你的
mysql_query($query1) or die("Cannot update");
到mysql_query($query1) or die("MySQL ERROR: ".mysql_error());
让它显示错误
发现了一些错误
mysql_numrows
应为mysql_num_rows
和重大错误
$query1 = mysql_query("UPDATE users SET progress = $add WHERE UserID = $varIDe");
正在运行查询,将其更改为
$query1 = "UPDATE users SET progress = '".$add."' WHERE UserID = '".$varIDe."'";
答案 1 :(得分:0)
我认为你得到了错误的变量
if(isset($_POST['edituser'])){
$add = $_POST['edituser']; // this is a button
应该是:
if(isset($_POST['editinguser'])){
$add = $_POST['editinguser']; // this is a select list
答案 2 :(得分:0)
当出现问题时,对于查询,您最好调试,添加一个:or die ( mysql_error ( ) ) ;
,然后显示错误消息。
答案 3 :(得分:0)
$query1 = mysql_query("UPDATE `users` SET `progress` = '".$add."' WHERE UserID = '".$varIDe."'");
if(mysql_query($query1))
{
//DO SOME ACTION
}
else
{
die(mysql_error());
}