Выводит на 1 строку меньше

Статус
В этой теме нельзя размещать новые ответы.

yeaahhh

Старатель
Регистрация
8 Май 2008
Сообщения
278
Реакции
11
Друзья, столкнулся с проблемой.. Вывожу информацию из бд..
PHP:
$logpol = id юзера;
$ffav = mysql_query("select * from fav WHERE id_user='$logpol' limit 0, 100",$db);
Далее через цикл while вывожу записи..


Почему-то не выводит точное кол-во строк.. Например, в базе по запросу лежит 3 строки.. Но выводится 2..
В чём может быть причина?
Заранее спасибо!
 
  • Заблокирован
  • #2
Мало информации.
Или быть может вы лимитом себя ограничили?

Или в цикле неверно. В общем мест для ошибок может быть много.
 
Если этот запрос выполнить в phpMyAdmin (или другой тулзе), то выводятся все строки? Если да, то ищите проблему дальше (в цикле или дальше).
 
Если убрать лимит, то проблема остаётся..

вот полный код:
PHP:
$ffav = mysql_query("select * from fav WHERE id_user='$logpol' limit 0, 100",$db); 
$fav = mysql_fetch_array($ffav);

?>
<div align="left" style="font-size:10px;margin-bottom:2px;"><b>Âàøè çàêëàäêè:</b></div>
<div style="font-size: 11px;background:#EEEBDD;border:2px dashed #E4E0CE;padding:10px 10px 8px 10px;">
<table cellspacing=0 width="290" cellpadding=2 border=0 style="font-size:11px;">
<tr><td>
<?

if ($fav['id_user_fav'] == '') {echo "Ó Âàñ â çàêëàäêàõ 0 ïîëüçîâàòåëåé";}
else {
while ($fav = mysql_fetch_array($ffav)) {
?>
<a href="/id<? echo $fav['id_user_fav']; ?>" title="Ïåðåéòè íà ñòðàíèöó <? echo $fav['fav_login']; ?>">
<img src="/avatars/<? echo $fav['fav_login']; ?>.jpg" width="45px" style="margin-bottom:2px;"/>
</a>
<?
}
}
 
  • Заблокирован
  • #5
так вы вызываете mysql_fetch_array() в начале и от него не выводите данные.
 
PHP:
$fav = mysql_fetch_array($ffav);
в начале прописано для того, чтобы проверить переменную $fav['id_user_fav']..
а позже $fav = mysql_fetch_array($ffav); прописан для цикла..
Я совсем не гуру в php.. может что-то необходимо по-другому реализовать?
 
  • Заблокирован
  • #7
А так?
PHP:
$ffav =  mysql_query("select * from fav WHERE id_user='$logpol' limit 0, 100" ,$db);
while ($tablerows = mysql_fetch_row($ffav)){
   echo($tablerows[0]."\n");
}
 
  • Заблокирован
  • #8
уже поздно, может я туплю.. но вы же теряете строку при любом вызове этой функции. и не в цикле она или не в цикле. а насчёт проверки - можно убрать эту строку и в цикле просто проверять на это условие и если что-то не так, то просто делать break;
 
Digwnews, вы правы.. Если убрать первый $fav = mysql_fetch_array($ffav);, то всё выводится правильно..
Вот только как теперь проверить наличие записей по where и вывести в случае отсутствия записей "Пользователей нет"..
Разумно ли тут с точки зрения ресурсоёмкости использовать SELECT COUNT?
 
  • Заблокирован
  • #10
Ну так есть же функция подсчёта выданных строк:
PHP:
$col=mysqli_num_rows($ffav)
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху