Syed Mudabbir Syed Mudabbir - 6 months ago 12
MySQL Question

Displaying based on Results in Mysql Query

I have an orders table in mysql and in that for some orders I set particular order status like 'review'.
I want to setup a way if any order placed by a particular customer(first and last name) for whom i have previously set order status as 'review' to display a warning in the list.


$sql = "select * from order where firstname = ".$firstname." AND lastname = ".$lastname." AND order_status = 'review';";
$SQLresult = mysql_query("$sql", $DBcon_MySQL);

while($row = mysql_fetch_array($SQLresult)) {
foreach($row as $row){

$result = "warning!";
echo $result;
}
}




The above code does not display anything. please let me know how to fix this.

[EDIT After Applying Answer]

This is how i am using it.


<td width="200">
<?
$sql = "select * from cust_order where firstname = '$firstname' AND lastname = '$lastname' AND order_status = 'review'";
$SQLResult = mysql_query("$sql", $DBcon_MySQL);

while($row = mysql_fetch_array($SQLResult )) {
//$result;
foreach($row as $row ){
//$result="";

$result = "Warning!";

}

?>

<p><? echo $result;?></p>
<?} ?>
</td>




How should i insert a check that it should display warning only once No matter how many orders from single customer are marked as review, display warning only once?

Answer

try this,

    $sql = "SELECT 
                    * 
            FROM
                    `order` 
            WHERE 
                    firstname = '$firstname' AND lastname = '$lastname' AND 
                    order_status = 'review' LIMIT 1";

    $SQLresult = mysql_query($sql, $DBcon_MySQL);

    while($row = mysql_fetch_array($SQLresult)) {       
        foreach($row as $row){

            $result = "warning!";
            echo $result;
        }
    }

Please be informed that mysql functions are deprecated and not recommended. USE MySQLi or PDO instead. have a reference from following queries.

http://php.net/manual/en/book.mysqli.php

http://php.net/manual/en/book.pdo.php