2010-08-25 88 views
0

我试图写入我的数据库,如果一个变量等于0.问题是,即使变量等于1,它仍然写入数据库。什么是错?写入MYSQL的PHP​​变量等于0

echo $new_user; 

if ($new_user == 0) { 

    //SENT NEW USER WELCOME MESSAGE 

    $adminid = '9'; 
    $welcomemessagetitle = 'Welcome to The site'; 
    $welcomemessagecontent = 'Hello and welcome'; 

    $addmessages = "INSERT into `user_messages`(`to_user`,`from_user`,`title`,`content`) 
    VALUES ('$userid','$adminid','$welcomemessagetitle','$welcomemessagecontent');"; 

    $query = mysql_query($addmessages) or die(mysql_error()); 

    //SET USER AS NOT NEW USER 

    $newuservalue = '1'; 

    $notnewuser = "UPDATE users SET new_user = $newuservalue WHERE id = $userid" ; 

    $query2 = mysql_query($notnewuser) or die(mysql_error()); 

} elseif ($new_user == 1) {}; 

UPDATE完整的代码::

<?php 
session_start(); 
include "../includes/db_connect.php"; 
///profile/index.php 
if($_SESSION['id']) 
{ 
    $username = $_SESSION['username']; 
    $userid = $_SESSION['id']; 
    //WRITE FIRST TIME LOGIN INFORMATION TO DATABASE 
    $sql="SELECT new_user from `users` WHERE `id`= $userid "; 
    $res=mysql_query($sql) or die(mysql_error()); 
    while($row=mysql_fetch_assoc($res)) $new_user = $row['new_user'] ; 
    echo $new_user; 
    if ($new_user == 0) { 
    //SENT NEW USER WELCOME MESSAGE 
    $adminid = '9'; 
    $welcomemessagetitle = 'Welcome to Escorvee'; 
    $welcomemessagecontent = 'Hello and welcome'; 
    $addmessages = "INSERT into `user_messages`(`to_user`,`from_user`,`title`,`content`) 
     VALUES ('$userid','$adminid','$welcomemessagetitle','$welcomemessagecontent');"; 

    $query = mysql_query($addmessages) or die(mysql_error()); 
    //SET USER AS NOT NEW USER 
    $newuservalue = '1'; 
    $notnewuser = "UPDATE users SET new_user = $newuservalue WHERE id = $userid" ; 
    $query2 = mysql_query($notnewuser) or die(mysql_error()); 
    } elseif ($new_user == 1) {}; 
} 
?> 
+2

我认为这个问题位于别处。你有那个EXACT代码吗?回声打印1时是否写入?做一个回声“插入”;如果第一个回显打印,将显示大括号和手表1.向我们展示从数据库中选择$ new_user的方式。 – 2010-08-25 11:17:48

+1

让我给你一个建议。 **代码缩进**不仅仅是一时兴起。这是有史以来最伟大的发明之一。它让我们理解我们的代码**逻辑**。所有嵌套块应缩进。所以,你可以看到程序逻辑并找到一个缺陷,如果有任何 – 2010-08-25 11:28:08

回答

1

它的变量$ new_user是你的代码不会被执行,所以我猜下面的一个值1适用:

  • $ new_user不是1.
  • 正在从其他位置修改数据库。
  • 您的脚本被调用两次。

要找出你需要在你的问题中提供更多信息。

+0

嗯..谢谢你。当我回显$ new_user时,它显示1.它也在数据库中显示1。 – user342391 2010-08-25 11:20:16

+1

@ user342391:除了永不输入'$ new_user'到数据库中。你创建一个新的变量'$ newuservalue',你设置为1并插入它,所以据我所知,你绝对不会在'if'语句后面使用'$ new_user' ......哦,'var_dump($ new_user )''而不是'echo',它更有用,因为你也可以得到类型... – ircmaxell 2010-08-25 11:21:47

+0

检查更新后的代码。将做var:dump – user342391 2010-08-25 11:24:15