Delete
Delete

Reputation: 429

SQL / PHP if NULL show else

We are trying to complete / fix the below code, We cant seem to do the following.

I know its basicly there but we can't seem to figure out the final bug.

Please have a quick look at the code below and if anyone notices anything that isn't right please advice us.

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

Upvotes: 0

Views: 108

Answers (2)

Hurricane Development
Hurricane Development

Reputation: 2464

before I get into the technicality of what your are trying to accomplish, I have some advice for your code in general. You should avoid using the mysql api as it is deprecated, and use the mysqli api instead. I think you will also find that it is easier to use.

Now for the code: You have this line in your code which seems to be incorrect, $checkcustomer is a result set from your previous query, so why are you running it as a query again?

$val = mysql_query($checkcustomer);

You already have the result set so do this:

$array = mysql_fetch_array($checkcustomer);

And then take the value of Check_Aviation;

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

Should solve your issue

Upvotes: 0

Krish R
Krish R

Reputation: 22711

Try this, You need to fetch the row from table and then you can check the values,

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

instead of

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

NOTE: Use mysqli_* functions or PDO instead of using mysql_* functions(deprecated)

Upvotes: 2

Related Questions