Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: While как заставить начать сначала
 
 автор: Dinya_1   (16.08.2014 в 09:08)   письмо автору
 
 

Здравствуйте.
Есть выборка из таблицы путем While.
Когда доходит до конца, цикл останавливается, а нужно повторить сначала (т.е. вернуться на первую строку и вывести еще раз, потом еще.). (Бесконечного цикла не будет, потому как стоит LIMIT 5 )


<?
  $res1 
mysql_query("SELECT * FROM articles WHERE id='$_GET[id]' ORDER BY id LIMIT 5",$db);
if(
mysql_num_rows($res1) > 0

while (
$row1 mysql_fetch_array($res1))  
{
echo 
"";
 }
 } 
?>

  Ответить  
 
 автор: confirm   (16.08.2014 в 09:29)   письмо автору
 
   для: Dinya_1   (16.08.2014 в 09:08)
 

Видимо то что вам вам ранее говорили, вы по боку.

if(mysql_num_rows($res1) > 0)

А если запрос вернул ошибку, тогда что?

Опять mysql_fetch_array?

>Бесконечного цикла не будет, потому как стоит LIMIT 5

А причем тут LIMIT 5 и каким образом он ограничит количество проходов, которого вы и сами не знаете?

'$_GET[id]' - кавычки тут нафик не нужны, а вот нефильтрованное $_GET[id] - это инъекция, и об этом вам уже тоже говорили.

  Ответить  
 
 автор: Dinya_1   (16.08.2014 в 09:49)   письмо автору
 
   для: confirm   (16.08.2014 в 09:29)
 

>Видимо то что вам вам ранее говорили, вы по боку.
А Вы не говорите, вы если можете ответить на поставленный вопрос - отвечайте, а не можете не лезьте. (в хорошем смысле)

>Бесконечного цикла не будет, потому как стоит LIMIT 5
Этот запрос повторяется несколько раз (по 5 шт.) Дойдя до конца таблицы он останавлявается а нужно что бы проходил повторно с начала до конца.

>'$_GET[id]' - кавычки тут нафик не нужны, а вот нефильтрованное $_GET[id] - это инъекция, и об этом вам уже тоже говорили.
Данные вопросы к этому посту ни какого отношения не имеют.

Цель вопроса была: Как заставить While пройти по новой не останавливаясь на последней строке вывода.

  Ответить  
 
 автор: confirm   (16.08.2014 в 09:57)   письмо автору
 
   для: Dinya_1   (16.08.2014 в 09:49)
 

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

>Дойдя до конца таблицы он останавлявается а нужно что бы проходил повторно с начала до конца.

Естественно, на то он и цикл, у которого задана итерация, в данном случае ее отслеживает курсор ресурса. Надо прогнать еще, указывайте цикл, а нем число итераций нужных, помещайте курсор в начало и поехали... Но лучше выгрузить ресурс в массив, а потом гонять его сколько захочется. Вот только зачем это нужно не понятно.

Безопасность имеет отношение ко всем запросам, запомните это.

  Ответить  
 
 автор: tvv123456   (16.08.2014 в 17:08)   письмо автору
 
   для: Dinya_1   (16.08.2014 в 09:08)
 

mysql_data_seek()

  Ответить  
 
 автор: Commander   (16.08.2014 в 20:17)   письмо автору
 
   для: Dinya_1   (16.08.2014 в 09:08)
 

Думаю, проще всего в цикле while{} занести данные в массив, а потом прокрутить его нужное количество раз. Кстати, confirm во втором сообщении темы абсолютно прав, здесь стопроцентная инъекция.

  Ответить  
 
 автор: moonfox   (16.08.2014 в 21:05)   письмо автору
 
   для: Dinya_1   (16.08.2014 в 09:08)
 

если б я имел коня....

  Ответить  
 
 автор: Deed   (16.08.2014 в 21:46)   письмо автору
 
   для: Dinya_1   (16.08.2014 в 09:08)
 

Фигня какая-то, но так пойдет?

<?
  $res1 
mysql_query("SELECT * FROM articles WHERE id='$_GET[id]' ORDER BY id LIMIT 5",$db);
if(
mysql_num_rows($res1) > 0){
  for(
$i=0;$i<5;$i++){ //...(т.е. вернуться на первую строку и вывести еще раз, потом еще.) 5 раз хватит?
      
while ($row1 mysql_fetch_array($res1))  {
         echo 
"";
      }
   }
 } 
?> 

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования