[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Нескольо LIMITов подряд !
dima4321
Всем привет ))

Код упрощен для понимания.

С помощью LIMIT я хочу вытащить несколько блоков на одну страницу.

т.е. например имеется группа ABBA. У нее 15 альбомов. Каждый LIMIT должен вытащить по 6 альбомов , т.к. всего 15, то соотв-о на третий лимит получается 3 альбома.

Организовал это с помощью цикла for


 <?

$on_page=6;// кол-во для одного блока



$result = mysql_query("SELECT count(*) FROM `names` INNER JOIN `tracklist` ON `name_id` = `names`.`id`
WHERE `name`='
$name' ");
$posts = mysql_result($result,0);

$total = intval(($posts - 1) / $on_page) + 1; //общее кол-во блоков


for($page=1;$page<=$total;$page++)

{

$start =($page * $on_page) - $on_page;// начало для блока.

echo "<br><b>$start</b><br>";



$result = mysql_query("SELECT `text_tracklist`,`list` FROM `names` INNER JOIN `tracklist` ON `name_id` = `names`.`id`
WHERE `name`='
$name' LIMIT $start, $on_page");

while ( $postrow[] = mysql_fetch_array($result))

for($i = 0; $i < $on_page; $i++)

{

echo $postrow[$i]['list'];

echo "____________________________________";
}

}


?>





Старт получается там где надо ! А вот все блоки выводят одно и то же. Т.е. все 3 блока мне выводят только первые 6 альбомов.

Не понимаю почему.
Видать скрипт считает что массив $postrow[] всегда один и тот же.

Помогите пожалуйста )



Спустя 22 минуты, 1 секунда (20.03.2011 - 13:36) fallow написал(а):
Во втором цикле, вот здесь :
 $start =($page * $on_page) - $on_page;// начало для блока.

Старт получает 6, а вот здесь
$result = mysql_query("SELECT `text_tracklist`,`list` FROM `names`  INNER JOIN `tracklist` ON `name_id` = `names`.`id`
WHERE `name`='
$name' LIMIT $start, $on_page");

$one_page так же 6. То есть лимит с 6 до 6 что-ли?
Попробуй в конце for'а поcтавить счтётчик чтобы к $on_page прибавляло 6.
И попробуй ещё в конце обнулять $postrow[]

Спустя 47 минут, 41 секунда (20.03.2011 - 14:24) dima4321 написал(а):
fallow

в лимите $on_page показывает насколько отсупить от точки отсчета.
Там все правильно.


обнулять пробовал так:

$postrow[]="";

но результат тот же.

Спустя 11 минут, 19 секунд (20.03.2011 - 14:35) fallow написал(а):
а unset($postrow) ?
Или счтётчик $page засунуть в $postrow[$page] и во внутреннем цикле обращаться к ней
$postrow[$page][$i]['list'];

p.s извини за limit и вправду работает как (от начала,cколько), не внимательный)

Спустя 9 минут, 23 секунды (20.03.2011 - 14:44) dima4321 написал(а):
fallow
Спасибо, я неправильно делал обнуление ))

Проблема решилась так unset($postrow); ))


_____________
Работаю за еду ! __))
И за плюсики !
Быстрый ответ:

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