Просмотр полной версии : Помогите с LIMIT-ом
Skudarnov
15.03.2006, 16:43
Вот код
$total = mysql_num_rows($result2);
//Разбиваем по 12 элементов на страницу
$page=$_GET['cur_page'];
$p = $total-(12*$page);
//$p=sqrt($p*$p);
if($p<=12){
$p=0;
}
$query ="SELECT * FROM video LIMIT $p, 12";
Все работает пока остаток элементов в БД БОЛЬШЕ чем элементов на страницу.. в моем случае 12. а как только меньше не выдает ничего.
Сейчас у меня 26 фильмов в бд, две страницы по 12 и еще на одной 2... 2 по 12 выводятся на "УРА" а вот остаток - никак....
Я уже IF написал... чтобы с самого начала выбирал 12 эл-тов. В чем затык?
Тут надо не IF, а For юзать!
Тут надо не IF, а For юзать!
Ага, а еще лучше - диагональное программирование (с)
Еще бы порядок сортировки прикрутить к запросу, для полного счастья.
А вообще, выбирать надо бы
$p = $curr_page * $per_page - 1;
... LIMIT $p, 12
Constantine
15.03.2006, 17:39
Кстати, количество страниц=ceil($total/12), короче только недавно подобное писал:$startfrom=(!isset($_GET['from'])) ? 0 : intval($_GET['from']);
$query="SELECT COUNT(*) FROM ".DB_PREFIX."clients";
$result=mysql_query($query) or die("<h1>Invalid query: ".mysql_error()."</h1>");
if ($row=mysql_fetch_row($result)) $totalclients=$row[0];
$query="SELECT id, clientid, name FROM ".DB_PREFIX."clients ORDER BY clientid LIMIT $startfrom, 20";
$result=mysql_query($query) or die("<h1>Invalid query: ".mysql_error()."</h1>");
while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
// вывод чего-то
}
echo "<p>Страницы: | ";
$pages=ceil($totalclients/20);
$currentpage=$startfrom/20+1;
for($i=1;$i<=$pages;$i++) {
$from=($i-1)*20;
echo($currentpage==$i) ? "<b>$i</b> | " : "<a href=\"".$_SERVER['PHP_SELF']."?from=$from\">$i</a> | ";
}
Skudarnov
15.03.2006, 18:11
Уже сделал.... просто то что вы мне писали берет с начала, а мне с конца надо, так во флеше все это дело.... и там все инверсится при парсинге.
Лщроче в IF я добавил так
if(p<$kol){
$kol=$p+12;
$p=0;
}
Т.е. если у меня колич в выборке, меньше чем элементов на страницу... все равно принудительно начинать с позиции 0 и выбирать кол-во элементов p+12.... работает....
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.