Клас за странициране
20-09-2011
Здравейте,
гледам че има доста теми из форума за странициране и проблеми с него. Сигурно има доста уроци тук за това, но реших да сложа и моя си клас за тая работа.

Изтегляте си самия клас от тук : http://pastebin.com/jihAFvFx

Слагам урока в Code, тъй като няма да обяснявам за написването на класа, но ако имате въпроси и Ви е интересно винаги може да питате във форума.

Класа се ползва по следния начин :

Първо имаме нужда да си пуснем една заявка, кяото да преброи общия брой резултати, които ще изкарваме. Аз ползвам само mysqlI и съм позабравил mysql(); но вие ще можете да си пуснете заявката както Ви е по-удобно.

$count_query = $mysqli -> query("select count(`id`) as `total` from `vs` order by `id` desc");
$count = $count_query -> fetch_array();
$total = $count['total'];


Сега имаме $total, което ни държи общия брой резултати.


$page = (int)$_GET['page'];
// тук взема текущата страница. Ако искате в URL-то да ви е различно от ?page=1 променете $_GET-а
$page = is_numeric($page) ? $page : 1;
$perPage = 10; // Тук попълвате по колко резултата на страница искате.
$paging = new paging($page, $perPage, $total);
$offset = $paging -> offset;
$allPages = $paging -> ShowPages();

ShowPages(); връща резултатите във вид ЛИНК!ИМЕ!КЛАС|ЛИНК!ИМЕ!КЛАС
Т.е. ако имаме три страници и сме на втората ще имаме следния резултат :

1!<<!page_inactive|1!1!page_inactive|2!2!page_active|3!3!page_inactive|3!>>!page_inactive

Така след един

$onePage = explode("|", $allPages);


вече имаме един масив държащ елементите на всяка страница. Достатъчно е да ги обходим така:


foreach($singlePage as $pageElements) {
$pageElement = explode("!", $pageElements);
// и тук вече имаме
// $pageElement[0] - което е линка на страницата
// $pageElement[1] - което е името на страницата
// $pageElement[2] - което е класа на страницата
}

Извеждате си както искате тези резултати и сте готови. Само подавате index.php?page=цифра
И сте готови. Ако някой не може да си го дооправи да пита във форума - ще му помогна.

Скоро правих класа да стои текущата страница винаги в средатата, като ти показва три вляво и три вдясно. Нещо като на youtube коментарното странициране както се държи. Ако някой има други идеи, с които да се подобри ще го дописвам.

Демоо...
Тук - Страницирането на постовете долу
или
Тук - страницирането на материалите

Благодаря за четенето :)

/ Трябва да сте регистриран за да напишете коментар /
От: hustle102
22:49 22-09-2011
Примерно ако искам да си направя чата на страници как ще стане ? каде точно трябва да сложа кода :/
1