Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Нулевые значения в цикле do while

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Как не выводить нулевые значения в цикле
Doxtor
Отправлено: 14 Апреля, 2011 - 00:38:41
Post Id


Новичок


Покинул форум
Сообщений всего: 19
Дата рег-ции: Апр. 2011  


Помог: 0 раз(а)




Просмотрел все глаза и поломал всю голову, не могу найти/вспомнить решение.

PHP:
скопировать код в буфер обмена
  1. $result = mysql_query("SELECT pole1, pole2 FROM tab1 ", $db);
  2. $row = mysql_fetch_array($result);
  3.  
  4. do{
  5. printf("<div>%s</div>",$row["pole1"]);
  6. }
  7.    while ($row = mysql_fetch_array($result));


В таблице есть значения равные "0".
В приведенном цикле выводятся все значения столбца pole1:
5
4
3
2
1
0

а нужно
5
4
3
2
1

Заранее спасибо
 
 Top
OrmaJever
Отправлено: 14 Апреля, 2011 - 00:42:12
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




PHP:
скопировать код в буфер обмена
  1. $result = mysql_query("SELECT pole1, pole2 FROM tab1 ", $db);
  2. $row = mysql_fetch_array($result);
  3.  
  4. do{
  5. if($row["pole1"] == 0) continue;
  6. printf("<div>%s</div>",$row["pole1"]);
  7. }
  8.    while ($row = mysql_fetch_array($result));
  9.  

(Отредактировано автором: 14 Апреля, 2011 - 00:43:04)



-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
EuGen Администратор
Отправлено: 14 Апреля, 2011 - 09:07:02
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




PHP:
скопировать код в буфер обмена
  1.  
  2. $result = mysql_query("SELECT pole1, pole2 FROM tab1 WHERE pole1!=0", $db);
  3. while($row = mysql_fetch_array($result))
  4. {
  5.    printf("<div>%s</div>",$row["pole1"]);
  6. }
  7.  


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
Doxtor
Отправлено: 14 Апреля, 2011 - 14:23:40
Post Id


Новичок


Покинул форум
Сообщений всего: 19
Дата рег-ции: Апр. 2011  


Помог: 0 раз(а)




OrmaJever пишет:
PHP:

$result = mysql_query("SELECT pole1, pole2 FROM tab1 ", $db);
$row = mysql_fetch_array($result);

do{
if($row["pole1"] == 0) continue;
printf("<div>%s</div>",$row["pole1"]);
}
while ($row = mysql_fetch_array($result));





Спасибо, оба варианта работают.
Хотел спросить для понимания вопроса: а почему не работает :
if($row["pole1"] > 0) continue;
 
 Top
OrmaJever
Отправлено: 14 Апреля, 2011 - 14:27:33
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




Надо прочитать http://php.su/learnphp/cs/?cycles#continue и будет понятно


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
Мелкий Супермодератор
Отправлено: 14 Апреля, 2011 - 14:31:58
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Doxtor пишет:
Хотел спросить для понимания вопроса: а почему не работает :

continue означает "завершить итерацию цикла и перейти к следующей".
Т.е. if($row["pole1"] > 0) continue; выведет только $row["pole1"] меньшие, либо равные 0.


-----
PostgreSQL DBA
 
 Top
Doxtor
Отправлено: 14 Апреля, 2011 - 16:31:39
Post Id


Новичок


Покинул форум
Сообщений всего: 19
Дата рег-ции: Апр. 2011  


Помог: 0 раз(а)




Разобрался, большое спасибо.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« SQL и Архитектура БД »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB