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
https://forums.phpfreaks.com/topic/248207-if-statement-not-displaying-right-part/
Share on other sites

Do you actually have variables $balance and $rank that contain column names in your table so that $row["$balance"] and  $row["$rank"], reference actual columns in your database table -

 

	$real_balance = $row["$balance"];
$real_rank = $row["$rank"];

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" />';
}

$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);

 

Archived

This topic is now archived and is closed to further replies.

×
×
  • 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.