Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

php while() loop within if / else not seeming to work

I've been confused about why this wont work! My query executes perfectly fine in all aspects, but when I added the if check on the $row value, the echo message goes as expected (if there are no results), but the else will not kick when there is a match in my query??? Why is this not working? Someone please ease my pain and set me straight!!

$row = mysql_fetch_array($result);
if (!$row) {
    echo "Sorry brah. Nothing matches your search criteria.";
} else {

$i = 1;
while($row = mysql_fetch_array($result)) {
    echo "$i - " . $row['first_name'] . " " .  $row['last_name'] . " - " .   $row['address'] . "<br />";
$i++;
    } 
}
like image 745
OldWest Avatar asked Nov 27 '25 09:11

OldWest


2 Answers

$row = mysql_fetch_array($result);  // this fetches the first row your result
...

in while loop you are again fecthing thr row from result. Which will not work if you have only one row in resul

use

if (mysql_num_rows($result) == 0) {
    echo "Sorry brah. Nothing matches your search criteria.";
} else {
    $i = 1;
    while($row = mysql_fetch_array($result)) {
        echo "$i - " . $row['first_name'] . " " .  $row['last_name'] . " - " .   $row['address'] . "<br />";
        $i++;
    } 
}
like image 132
Gaurav Avatar answered Nov 29 '25 22:11

Gaurav


try mysql_num_rows($result)==0 instead in the if statement

like image 32
Headshota Avatar answered Nov 29 '25 22:11

Headshota