[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: FOR loop
Eugene
Приветствую вас дорогие форумчане! happy.gif
С недавних пор решил учиться пхп , и столкнулся с проблемой , что FOR в нужный момент не выключается и продолжает тикать до посинения...

Вот часть когда:
$page = ($_REQUEST['page']);

if (!$page){$page = 1;}
elseif ($page > $maxpages){$page = $maxpages;}

$max = ($num_news+10)-($page*10);
$min = $num_news-($page*10);

for ($i = $num_news ; ; )
{
$row = mysql_fetch_array($table);
echo "ID - $row[ID] $max - MAX $min - MIN<br>";
if ($i <= $max && $i >= $min)
{
echo "Сработало"
$i -=1;
if ($i < $min)
{
break 1;
}
}
}


Не срабатывает как я понимаю вот эта часть:

if ($i < $min)
{
break 1;
}


Для проверки кто заметил , я приписал такую строку
echo "ID - $row[ID]            MAX - $max               MIN - $min<br>";

Так вот , на 1 странице всё срабатывает как надо... И в результате эта строка выдает след.

ID - 25 MAX - 25 MIN - 15
ID - 24 MAX - 25 MIN - 15
ID - 23 MAX - 25 MIN - 15
ID - 22 MAX - 25 MIN - 15
ID - 21 MAX - 25 MIN - 15
ID - 20 MAX - 25 MIN - 15
ID - 19 MAX - 25 MIN - 15
ID - 18 MAX - 25 MIN - 15
ID - 17 MAX - 25 MIN - 15
ID - 16 MAX - 25 MIN - 15
ID - 15 MAX - 25 MIN - 15</span>

На это и останавливается... (так и надо)

На 2 странице , эта строка выдает след:

ID - 25 MAX - 15 MIN - 5
ID - 24 MAX - 15 MIN - 5
ID - 23 MAX - 15 MIN - 5
ID - 22 MAX - 15 MIN - 5
ID - 21 MAX - 15 MIN - 5
ID - 20 MAX - 15 MIN - 5
ID - 19 MAX - 15 MIN - 5
ID - 18 MAX - 15 MIN - 5
ID - 17 MAX - 15 MIN - 5
ID - 16 MAX - 15 MIN - 5
ID - 15 MAX - 15 MIN - 5
ID - 14 MAX - 15 MIN - 5
ID - 13 MAX - 15 MIN - 5
ID - 12 MAX - 15 MIN - 5
ID - 11 MAX - 15 MIN - 5
ID - 10 MAX - 15 MIN - 5
ID - 9 MAX - 15 MIN - 5
ID - 8 MAX - 15 MIN - 5
ID - 7 MAX - 15 MIN - 5
ID - 6 MAX - 15 MIN - 5
ID - 5 MAX - 15 MIN - 5
ID - 4 MAX - 15 MIN - 5
ID - 3 MAX - 15 MIN - 5
ID - 2 MAX - 15 MIN - 5
ID - 1 MAX - 15 MIN - 5</span>

Как видите цикл не заканчивается вообще...

Как побороть? smile.gif
Надеюсь описал понятно...

Заранее благодарю!



Спустя 54 минуты, 38 секунд (7.03.2010 - 21:44) Adil написал(а):
а значение $i как изменяется?

Спустя 9 минут, 23 секунды (7.03.2010 - 21:54) Eugene написал(а):
В случае если всё срабатывает уменьшается на 1ед.

if ($i <= $max && $i >= $min)
{
echo "Сработало"
$i -=1; <<<

Спустя 55 минут, 21 секунда (7.03.2010 - 22:49) qpayct написал(а):
$i -=1;

biggrin.gif
$i--;

Спустя 19 минут, 3 секунды (7.03.2010 - 23:08) Eugene написал(а):
Насколько мне известно , разницы между
$i -=1 и $i--

нет smile.gif!

Спустя 10 минут, 37 секунд (7.03.2010 - 23:19) krasilich написал(а):

$i = num_news;
while($i <= $max && $i >= $min && $row = mysql_fetch_array($table))
{
echo "ID - $row[ID] $max - MAX $min - MIN<br>";
--
$i;
}

Спустя 4 минуты, 8 секунд (7.03.2010 - 23:23) dr_Lev написал(а):
Я так понял, $num_news у тебя на 1-й и на 2-й странице = 25... т.е. на второй стр. $=25, а $max=15... что значит, что условие if ($i <= $max && $i >= $min) для второй стр. не выполнится никогда...
Данную ситуацию можно легко исправить, например $i-=1 (или $i--, что равноценно) вынести до проверки, и изменить условие на if ($i < $max && $i >= $min-1)... но советую пересмотреть логику, и вытаскивать нужные записи из таблицы еще в запросе, например используя LIMIT

Спустя 33 минуты, 52 секунды (7.03.2010 - 23:57) Eugene написал(а):
see_man
Премного благодарен , за ответ!

dr_Lev
Спасибо что указали на ошибку! smile.gif
Написать написал , а что и как - не подумал! rolleyes.gif

Спустя 10 часов, 6 минут, 21 секунда (8.03.2010 - 10:03) qpayct написал(а):
Цитата (Eugene @ 7.03.2010 - 22:08)
Насколько мне известно , разницы между
$i -=1 и $i--

нет smile.gif!

ошибаешься. разница есть.

Спустя 6 часов, 27 минут, 26 секунд (8.03.2010 - 16:31) Eugene написал(а):
Цитата (qpayct @ 8.03.2010 - 07:03)
Цитата (Eugene @ 7.03.2010 - 22:08)
Насколько мне известно , разницы между
$i -=1 и $i--

нет smile.gif!

ошибаешься. разница есть.

Прошу просветить , какая же smile.gif
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.