SQL / PHP如果NULL显示else

时间:2014-02-05 17:41:03

标签: php mysql sql

我们正在尝试完成/修复以下代码,我们似乎无法执行以下操作。

  • 检查数据库
  • 中的'Check_Activation'是否设置为'NULL'
  • IF值为NULL将用户指向其中一个表单(1,2,3)
  • 最后,如果'Check_Activation'已被激活且不是'NULL',则阻止用户访问3个表单中的一个。

我基本上知道它,但我们似乎无法弄清楚最后的错误。

请快速查看下面的代码,如果有人注意到任何不正确的信息,请咨询我们。

Paste Bucket / Version
Website URL

    <?php

$username = $_POST['username'];
$activation_code = $_POST['activation_code'];
$activation_codeurl = $activation_code;
$usernameurl = $username;

$db_host = "localhost";
$db_name = "aardvark";
$db_use = "aardvark";
$db_pass = "aardvark";

$con = mysql_connect("localhost", $db_use, $db_pass);
if (!$con){
    die('Could not connect: ' . mysql_error());
}
mysql_select_db($db_name, $con);

$checkcustomer = mysql_query("SELECT `Check_Activation` FROM `members` WHERE `Username` = '".$username."' & `Activation` = '".$activation_code."'; ");

    $array = mysql_fetch_array($checkcustomer);
    if (is_null($array['Check_Activation']))  {
            $username = substr($username, 0, 1);
            if($username == '1') { 
                $redirect_url='form-one.php?membernumber='.$usernameurl.'&activation_code='.$activation_codeurl;
            } elseif($username == '2') { 
                $redirect_url='form-two.php?membernumber='.$usernameurl.'&activation_code='.$activation_codeurl;              
            } elseif($username == '3') { 
                $redirect_url='form-three.php?membernumber='.$usernameurl.'&activation_code='.$activation_codeurl;
            }
            header("Location:". $redirect_url);
    } 
    else 
    {
?>

Database Structure

2 个答案:

答案 0 :(得分:2)

试试这个,你需要从表中获取行,然后你可以检查值,

$val = mysql_fetch_array($checkcustomer);
if (is_null($val['Check_Activation']))

而不是

$val = mysql_query($checkcustomer);
if ($val == 'NULL')

注意:使用mysqli_ *函数或PDO而不是使用mysql_ *函数(不建议使用)

答案 1 :(得分:0)

在我进入你想要完成的技术性之前,我总体上对你的代码有一些建议。您应该避免使用不推荐使用的mysql api,而是使用mysqli api。我想你也会发现它更容易使用。

现在代码: 您的代码中有一行似乎不正确,$ checkcustomer是您之前查询的结果集,那么为什么还要再次将其作为查询运行?

$val = mysql_query($checkcustomer);

您已经拥有结果集,所以请执行以下操作:

$array = mysql_fetch_array($checkcustomer);

然后取Check_Aviation的值;

if (is_null($array['Check_Aviation']))  {
    //Do Something
}

应解决您的问题