|
|
|
| Здравствуйте.
Есть выборка из таблицы путем 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 "";
}
}
?>
|
| |
|
|
|
|
|
|
|
для: Dinya_1
(16.08.2014 в 09:08)
| | Видимо то что вам вам ранее говорили, вы по боку.
if(mysql_num_rows($res1) > 0)
А если запрос вернул ошибку, тогда что?
Опять mysql_fetch_array?
>Бесконечного цикла не будет, потому как стоит LIMIT 5
А причем тут LIMIT 5 и каким образом он ограничит количество проходов, которого вы и сами не знаете?
'$_GET[id]' - кавычки тут нафик не нужны, а вот нефильтрованное $_GET[id] - это инъекция, и об этом вам уже тоже говорили. | |
|
|
|
|
|
|
|
для: confirm
(16.08.2014 в 09:29)
| | >Видимо то что вам вам ранее говорили, вы по боку.
А Вы не говорите, вы если можете ответить на поставленный вопрос - отвечайте, а не можете не лезьте. (в хорошем смысле)
>Бесконечного цикла не будет, потому как стоит LIMIT 5
Этот запрос повторяется несколько раз (по 5 шт.) Дойдя до конца таблицы он останавлявается а нужно что бы проходил повторно с начала до конца.
>'$_GET[id]' - кавычки тут нафик не нужны, а вот нефильтрованное $_GET[id] - это инъекция, и об этом вам уже тоже говорили.
Данные вопросы к этому посту ни какого отношения не имеют.
Цель вопроса была: Как заставить While пройти по новой не останавливаясь на последней строке вывода. | |
|
|
|
|
|
|
|
для: Dinya_1
(16.08.2014 в 09:49)
| | В "хорошем смысле" вам об этом уже говорилось вот здесь. Так что вам это повторять еще нужно?
>Дойдя до конца таблицы он останавлявается а нужно что бы проходил повторно с начала до конца.
Естественно, на то он и цикл, у которого задана итерация, в данном случае ее отслеживает курсор ресурса. Надо прогнать еще, указывайте цикл, а нем число итераций нужных, помещайте курсор в начало и поехали... Но лучше выгрузить ресурс в массив, а потом гонять его сколько захочется. Вот только зачем это нужно не понятно.
Безопасность имеет отношение ко всем запросам, запомните это. | |
|
|
|
|
|
|
|
|
для: Dinya_1
(16.08.2014 в 09:08)
| | Думаю, проще всего в цикле while{} занести данные в массив, а потом прокрутить его нужное количество раз. Кстати, confirm во втором сообщении темы абсолютно прав, здесь стопроцентная инъекция. | |
|
|
|
|
|
|
|
для: Dinya_1
(16.08.2014 в 09:08)
| | если б я имел коня.... | |
|
|
|
|
|
|
|
для: 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 "";
}
}
}
?>
|
| |
|
|
|