Mysql mysql_num_rows не правильно считает строки?

Royal Flash

-=MaestrO=-
Здравствуйте.

Впервые столкнулся с тем, что результат mysql_num_rows() не равен перебору строк в mysql_fetch_assoc():
Код:
...
$i = 0;
echo 'Num rows: '.mysql_num_rows($result).'<br> ';
while ($row = mysql_fetch_assoc($result))
  {
  $i++;
  echo $i.'<br>';
  }
// $i != mysql_num_rows($result) ?!?!

В запросе к БД используются 4 таблицы объединяемые JOIN и LEFT JOIN. У меня получилось Num rows: 1042, а максимальное значение i = 521... Кто-нибудь сталкивался с подобным?
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Kotofey, у него как бэ вроде SELECT запрос... Или я не прав, автор?
 

Вурдалак

Продвинутый новичок
Ну очевидно же, что 2 раза mysql_fetch_assoc() вызывается где-то. А код, показанный тут, упрощён так, что ошибки нет.
 

Royal Flash

-=MaestrO=-
Ну очевидно же, что 2 раза mysql_fetch_assoc() вызывается где-то - да хоть 100 раз его вызывай - результат должен быть один и тот же, значение же не в переменную записывается... То что в примере 521*2=1042 - совпадение, при изменении условия SELECT, NumRows может быть 2300 а i = 433...
Обнаружил, что проблема в одной из таблиц, при исключении её из запроса - mysql_num_rows() равен i. Первый раз сталкиваюсь с таким глюком...

Попробуй использовать - mysql_affected_rows - не, не тот случай, у меня SELECT :)
 

AnrDaemon

Продвинутый новичок
Результат выполнения mysql_num_rows может отличаться от реального количества строк в запросе.
 

AnrDaemon

Продвинутый новичок
/рукалицо
Вы хоть иногда документацию открываете?

Это не значит, что автор топика не слепой дурак и неумеет тестировать собственный код, впрочем.
 

Фанат

oncle terrible
Команда форума
Скорее, у аффтара ункремент где-то унутре условия.
 
Сверху