mysql_fetch_array возвращает false, когда mysql_num_rows говорит, что данные есть, почему? - PullRequest
2 голосов
/ 29 марта 2012

моя таблица имеет 10 записей, и mysql_num_rows говорит, что в ресурсе mysql есть 10 строк, в phpMyAdmin я вижу 10 строк, но когда вызывается mysql_fetch_array, первые два раза это работает правильно, затем последние 8 развозвращает FALSE.

Почему?

$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 ...

Спасибо,

Ответы [ 2 ]

0 голосов
/ 31 марта 2012

Ошибка произошла из-за повторного использования переменной $ building_types,

0 голосов
/ 29 марта 2012

Попробуйте использовать цикл while

Например,

while ($row = mysql_fetch_assoc($building_types)) {
    echo $row['ColumnName'];
}
...