Jump to content

If statement not displaying right part


kaosjon

Recommended Posts

Hi, i have written a section of code for my website and i have been trying to get it to work but whatever i try it will not work

 

Here is the code

 

$upgrade_user = mysql_query("SELECT * FROM user_info WHERE id='$id'");
while($row = mysql_fetch_array($upgrade_user)){
$real_balance = $row["$balance"];
$real_rank = $row["$rank"];
}

echo $real_balance;

if($real_rank == 'merchant' && $real_balance > '500'){
$n1x = '<a href="upgrades_info.php?userid=$id&rank=noble"><img src="images/noble.jpg" width="170" height="200" /></a>';
}
else
{
$n1x = '<img src="images/noblex.jpg" width="170" height="200" />';
}

 

 

It should outbut the first if, but instead it keeps displaying the else, i have checked the $real_rank and it matches merchant and the $real_balance is over 500.

 

Any ideas?

 

I am guessing its a simple error in the way i have written it, but i can't seem to get it to work.

 

Thanks

Link to comment
Share on other sites

Hi, yes i do have columns in my database with those names, i managed to fix it, for now.

 

Heres my final code not sure what i done, just played around with it.

 

Thanks for your help

 

$upgrade_rank = mysql_query("SELECT rank FROM user_info WHERE id='$id'");
$user_array = mysql_fetch_assoc($upgrade_rank);
$real_rank = $user_array['rank'];

$upgrade_balance = mysql_query("SELECT balance FROM user_info WHERE id='$id'");
$user_array = mysql_fetch_assoc($upgrade_balance);
$real_balance = $user_array['balance'];


var_dump($real_rank);
var_dump($real_balance);

if(($real_rank == 'merchant') && ($real_balance > 500)){
$n1x = '<a href="upgrades_info.php?userid=$id&rank=noble"><img src="images/noble.jpg" width="170" height="200" /></a>';
}
else
{
$n1x = '<img src="images/noblex.jpg" width="170" height="200" />';
}

Link to comment
Share on other sites

$user_array['rank'] (an associative index named 'rank') is not the same as $row["$rank"] (a php variable named $rank inside of a double-quoted string.)

 

You now have two queries instead of one. I hope you are not trying to make a real application that must perform well with a lot of concurrent visitors.

 

<?php
$result = mysql_query("SELECT rank,balance FROM user_info WHERE id='$id'");
$user_array = mysql_fetch_assoc($result);
$real_rank = $user_array['rank'];
$real_balance = $user_array['balance'];

 

Edit: Or even simpler -

 

<?php
$result = mysql_query("SELECT rank,balance FROM user_info WHERE id='$id'");
list($real_rank,$real_balance) = mysql_fetch_row($result);

 

Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.