php - MySQL 更新没有按我的预期进行

标签 php html mysql sql

我一直在为学校做一个项目,但有一段时间我陷入了困境。所以我们需要做一个模拟酒店的员工和客人的管理系统,这很有趣,但问题是:

当我尝试更新数据库中的值时,它不起作用,这里是代码的更新部分:

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)。到目前为止我要做的就是在 url 中实际发送 $id 值,但其余的想法不起作用。现在,我犯一个愚蠢错误的机会相当大,因为我没有使用 php 太久了。

无论如何,您都会在下面找到发送 ID 值以将操作与正确的 guest 帐户关联起来的代码。

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

是的,这是布局的图片(并不是很重要,但你永远不知道)。 Layout of user editor, green thumbs up indicates the account is activated, red deactivated

因此,每当我单击“竖起大拇指”图标时,页面都会重新加载,并且网址将更改为应有的样子,仅此而已。 如果有人有想法,请告诉我!

您好,
皮米

最佳答案

对于在为 $id 设置值后 if 语句的第一个 block 中的更新语句,您是否尝试过

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 而不是值。

关于php - MySQL 更新没有按我的预期进行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22645716/

相关文章:

php - 此查询类型的 SQL 连接

php - 使用 jquery 和复选框构建查询字符串

javascript - 使用 CSS3 或 Javascript 增加输入字段中闪烁的插入符号宽度和高度

mysql - 将 yyyymmdd(int 类型) 转换为日期

MySQL:在插入期间重新使用自动增量

php - 使用 MySQL 的准备语句不将 POST 值插入数据库表

php - 在运行 alter table 之前需要找出一个表中有某些列

javascript - 如何使用 createjs 定位 MovieClip

javascript - HTML/JS 拖放内容在笔记本电脑版本中有效,但在移动 View 中无效

mysql - 在数据库中有效存储变量值