我一直在为一所学校的项目工作,但有一段时间我现在卡住了。所以我们需要为模拟酒店的员工和客人建立一个管理系统,这非常有趣,但问题是:
当我尝试更新数据库中的值时,它不起作用,这里是代码的UPDATE部分:
if (!empty ($_GET['id']))
{$id = $_GET['id'];
$query = "SELECT * FROM gast WHERE id=$id";
$result = mysql_query($query);
if (!$result)
{$message .= "Error msg<br>";}
$aantal = mysql_num_rows($result);
if ($aantal==1)
{$row = mysql_fetch_array($result);
$row['actief'];
$actief = $row['actief'];
if ($aantal==1)
{$query = "UPDATE gast SET actief= 1 WHERE id=$id";
mysql_query($query);
else if ($actief == 1){
$query = "UPDATE gast SET actief= 0 WHERE id=$id";
$result = mysql_query($query);
所以我想在这里创建的是一个“切换”来给我的数据库中的值(称为actief)。到目前为止,我所要做的就是在网址中实际发送值$ id,但其余的想法是不起作用的。现在我犯了一个愚蠢错误的机会非常大,因为我没有那么长时间使用php。
无论如何,您将找到发送ID值的代码,以便将操作与正确的访客帐户相关联。
while ($row = mysql_fetch_array($result)){
$actief = $row['actief'];
$id = $row['id'];
if ($actief==1){
echo
'<tr><td>' . $row['id'] .
'</td><td>' . $row['voornaam'] .
'</td><td>' . $row['tussenvoegsel'] .
'</td><td>' . $row['achternaam'] .
'</td><td>' . $row['tel'] .
'</td><td>' . $row['mobiel'] .
'</td><td>' . $row['nationaliteit'] .
'</td><td>' . $row['kamer'] .
'</td><td>' . $row['email'] .
'</td><td>' . "<a href='list_users.php?id=$id'><font color='lime'>" . "<i class='fa fa-thumbs-up'></i>" . "</font>" .
'</td></tr>';
}
else{
$actief = $row['actief'];
$id = $row['id'];
echo
'<tr><td>' . $row['id'] .
'</td><td>' . $row['voornaam'] .
'</td><td>' . $row['tussenvoegsel'] .
'</td><td>' . $row['achternaam'] .
'</td><td>' . $row['tel'] .
'</td><td>' . $row['mobiel'] .
'</td><td>' . $row['nationaliteit'] .
'</td><td>' . $row['kamer'] .
'</td><td>' . $row['email'] .
'</td><td>' . "<a href='list_users.php?id=$id'><font color='red'>" . "<i class='fa fa-thumbs-o-up'></i>" . "</font>" . '</a>' .
'</td></tr>';
}
}
$message .= '</table><br>';
}
?>
对,所以这里是布局的图片(不是很重要,但你永远不知道)。
因此,每当我点击Thumbs up图标时,页面将被重新加载,并且网址将更改为它应该是什么,仅此而已。 如果有人有想法,请告诉我!
问候,
Pimmy
答案 0 :(得分:0)
在为$ id设置值后,对于if语句的第一个块中的更新语句,是否尝试过
UPDATE gast SET actief= 1 WHERE id=".$id;
或者,
$query='UPDATE gast SET actief= 1 WHERE id='.$id;
或
$query=sprintf("UPDATE gast SET actief= 1 WHERE id='$id'");
可能是传递给数据库的值只是字符串$ id而不是值。
答案 1 :(得分:0)
所以我在这里得到答案,请不要嘲笑我,哈哈。
问题就像改变2个变量一样简单:
if ($aantal==1)
{
$row = mysql_fetch_array($result);
$row['actief'];
$actief = $row['actief'];
if ($aantal==0)
{
$query ='UPDATE gast SET actief= 1 WHERE id='.$id;
echo $query . '<br>';
$result = mysql_query($query);
之后:
if ($aantal==1)
{
$row = mysql_fetch_array($result);
$row['actief'];
$actief = $row['actief'];
if ($actief==0) /* this is what went wrong*/
{
$query ='UPDATE gast SET actief= 1 WHERE id='.$id;
echo $query . '<br>';
$result = mysql_query($query);
很抱歉让人浪费你的时间,我现在感觉很傻哈哈 再次感谢您的所有输入!