dje1990 dje1990 - 24 days ago 6
MySQL Question

mysql_fetch_array returning false when mysql_num_rows says that there is data, why?

my table has 10 records, and mysql_num_rows says that there are 10 rows in the mysql resource, in phpMyAdmin I can see 10 rows,
but when mysql_fetch_array is called, the first two times this works correctly, then the last 8 times it returns FALSE.

Why?

$query = "SELECT * FROM building_types";
$building_types = mysql_query($query) or die( mysql_error() );// works
echo mysql_num_rows($building_types); // prints 10
$num_rows = mysql_num_rows($building_types);
for ( $i = 0 ; $i < $num_rows ;$i++ )
{
echo"hi1"; // this is printed 10 times
$building_type = mysql_fetch_array($building_types);
echo $building_type; // prints Array 2 times not 10 times ...
if ( $building_type === FALSE ) echo"hi2"; //this is printed the last 8 times ...


Thanks,

Answer

Bug was due to reuse of variable $building_types,