Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Серверные технологии и Flash (http://www.flasher.ru/forum/forumdisplay.php?f=62)
-   -   Помогите с LIMIT-ом (http://www.flasher.ru/forum/showthread.php?t=76946)

Skudarnov 15.03.2006 16:43

Помогите с LIMIT-ом
 
Вот код
$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 эл-тов. В чем затык?

Ostgur 15.03.2006 16:55

Тут надо не IF, а For юзать!

Skubent 15.03.2006 17:32

Цитата:

Сообщение от Ostgur
Тут надо не 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.... работает....


Часовой пояс GMT +4, время: 17:09.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.