当注册用户可以获得免费啤酒时,我正在尝试创建一个推广网站。如果员工在搜索某人,则会显示他的姓名、身份证和考勤。出席人数显示他们是否已经喝到了啤酒。若员工按下一个按钮,它就会在数据库中标记他已经拿到了啤酒。我的尝试没有成功,但我尝试了论坛上的所有内容。请帮我我的代码出了什么问题,它快把我逼疯了。
所以我的结果显示是有效的。我添加了一个提交按钮,命令将考勤值从0更改为1 WHERE id='%$result['id']%'
看起来像这样:
HTML
<input type="submit" name="submit" value="BEER TAKEN" />
PHP
$con=mysql_connect("localhost","user","pass") or die(mysql_error());
mysql_select_db("members") or die(mysql_error());
$find = strtoupper($find);
$find = strip_tags($find);
$find = trim ($find);
$search = mysql_query("SELECT * FROM members WHERE name LIKE '%$find%'") or die(mysql_error());
while($result = mysql_fetch_array( $search)) {
echo $result['id'];
echo $result['name'];
echo $result['attendance'];
}
// The part what doesnt work:
if(isset($_POST['submit'])){
mysqli_query($con, "UPDATE members SET attendance=1 WHERE id='%$result%['id']'");
}
请帮忙!
尝试以下操作:
mysqli_query($con, "UPDATE members SET attendance=1 WHERE id='".$result['id']."'");
那些多余的"%"造成了麻烦。
使用mysql_error()
查找代码的确切错误。
http://php.net/mysql_error
作为提示,请尝试将%$result%['id']声明为变量,然后在查询中使用它。它可以产生可读的干净代码。
mysql_select_db("members",$con);
您必须将连接变量与mysql_select_db
一起传递。
试试这个代码
<?php
$con=mysql_connect("localhost","user","pass") or die(mysql_error());
mysql_select_db("members",$con) or die(mysql_error());
$find = strtoupper($find);
$find = strip_tags($find);
$find = trim ($find);
$search = mysql_query("SELECT * FROM members WHERE name LIKE '%$find%'") or die(mysql_error());
while($result = mysql_fetch_array( $search)) {
echo $result['id'];
echo $result['name'];
echo $result['attendance'];
}
echo '<form name="subform" action="<samefilename>.php" method="POST">
<input type="hidden" name="id" value='.$result['id'].'
<input type="submit name="submit" value="submit">
</form>';
// The part what doesnt work:
if(isset($_POST['submit'])){
mysqli_query($con, "UPDATE members SET attendance=1 WHERE id=".$result['id'].");
}
?>