MySQL Update没有像我预期的那样运行

时间:2014-03-25 20:36:29

标签: php html mysql sql

我一直在为一所学校的项目工作,但有一段时间我现在卡住了。所以我们需要为模拟酒店的员工和客人建立一个管理系统,这非常有趣,但问题是:

当我尝试更新数据库中的值时,它不起作用,这里是代码的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>';
  } 
?>

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

因此,每当我点击Thumbs up图标时,页面将被重新加载,并且网址将更改为它应该是什么,仅此而已。 如果有人有想法,请告诉我!

问候,
Pimmy

2 个答案:

答案 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);

很抱歉让人浪费你的时间,我现在感觉很傻哈哈 再次感谢您的所有输入!