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 :: цилк while

 PHP.SU

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


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

> Без описания
etoYA
Отправлено: 03 Февраля, 2012 - 18:46:49
Post Id



Участник


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


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




PHP:
скопировать код в буфер обмена
  1.  
  2. $result = mysql_query("SELECT * FROM `genres`");
  3. while ($genre = mysql_fetch_array($result)) {
  4.               $hr = '</hr >';
  5.         echo '<li><a href="#">'.$genre['title'].'</a><label>[234]</label>'.$hr.'</li>';
  6. }


я уже все извилины себе переломал)). Что я только не пробовал.

Нужно составить условие, чтобы $hr выводилась на 1 раз меньше, чем записей в таблице...
 
 Top
Panoptik
Отправлено: 03 Февраля, 2012 - 19:09:45
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2493
Дата рег-ции: Нояб. 2011  
Откуда: Одесса, Украина


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




PHP:
скопировать код в буфер обмена
  1.      
  2.     $flag = false;
  3.     $result = mysql_query("SELECT * FROM `genres`");
  4.     while ($genre = mysql_fetch_array($result)) {
  5.                   if($flag) {
  6.                   $hr = '</hr >';
  7.                   } else {
  8.                   $hr = '';        
  9.                   }
  10.                   $flag = true;
  11.             echo '<li><a href="#">'.$genre['title'].'</a><label>[234]</label>'.$hr.'</li>';
  12.     }

(Добавление)
первый раз выводиться не будет, все остальные разы будет... по количеству ровно на 1 раз меньше чем итераций цикла Подмигивание
(Добавление)
и предпочтительней пользовать mysql_fetch_assoc вместо mysql_fetch_array

(Отредактировано автором: 03 Февраля, 2012 - 19:11:38)



-----
Just do it
 
 Top
etoYA
Отправлено: 03 Февраля, 2012 - 19:47:02
Post Id



Участник


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


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




Panoptik, а почему assoc? перестрою вопрос, как получить последнее значение цикла?

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

(Отредактировано автором: 03 Февраля, 2012 - 19:48:37)

 
 Top
snikers987
Отправлено: 03 Февраля, 2012 - 19:50:43
Post Id



Участник


Покинул форум
Сообщений всего: 1239
Дата рег-ции: Сент. 2011  
Откуда: Крым


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




PHP:
скопировать код в буфер обмена
  1.  
  2. $result = mysql_query("SELECT * FROM `genres`");
  3. $iCount = mysql_num_rows($result);
  4. $i =0;
  5. while ($genre = mysql_fetch_array($result)) {
  6.         ($i != ($iCount-1)) ? $hr = '</hr >' : $hr = '';
  7.         echo '<li><a href="#">'.$genre['title'].'</a><label>[234]</label>'.$hr.'</li>'."\n";
  8.         $i++;
  9. }
  10.  


-----
Когда всматриваешься в тёмную бездну, учти, что кто-то может смотреть на тебя из неё...
 
My status
 Top
Panoptik
Отправлено: 03 Февраля, 2012 - 19:55:28
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2493
Дата рег-ции: Нояб. 2011  
Откуда: Одесса, Украина


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




etoYA пишет:
а почему assoc?
для эксперимента возьмите одну строку запроса извлеките 3-мя разными методами и посмотрите на результат
PHP:
скопировать код в буфер обмена
  1.  
  2. mysql_data_seek($result,0);
  3. $row = mysql_fetch_row($result); // вернет нумерованный массив
  4. print_r($row);
  5.  
  6. mysql_data_seek($result,0);
  7. $row = mysql_fetch_assoc($result); // ассоциативный
  8. print_r($row);
  9.  
  10. mysql_data_seek($result,0);
  11. $row = mysql_fetch_array($result); // оба варианта выше
  12. print_r($row);
  13.  


зачем? - вы забираете в 2 раза больше памяти, а всё равно берете только ту часть которая возвращается из ассоциативного


-----
Just do it
 
 Top
etoYA
Отправлено: 03 Февраля, 2012 - 20:22:04
Post Id



Участник


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


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




Panoptik, спасибо)
snikers987
, спасибо), все сделал, забыл про mysql_num_rows

(Отредактировано автором: 03 Февраля, 2012 - 20:24:46)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB