Xwab
Форумыnavigate_nextПрограммирование на PHP

Постраничная навигация
Сообщения
AutoRoot

Подскажите удобную для вап сайта постр. навигацию! Не смог найти в поисковикая удобную для вап.

11 Дек 2010, 10:40
AutoRoot

Кто ни будь поможет?

11 Дек 2010, 11:59
kamuik

http://bakler.org/blog/18

11 Дек 2010, 12:27
Istsam

вот смотри.
$num = 3 /количество на страницу
$page = $_GET['page']; //принимаем текущую страницу
$result = mysql_query("SELECT COUNT(*) FROM `articles`"); //считаем количество записей в бд
$posts = mysql_result($result, 0); //посчитали
$total = intval(($posts - 1) / $num) + 1; //фильтруем
$page = intval($page); //фильтруем
if(empty($page) or $page < 0) $page = 1; //проверка
if($page > $total) $page = $total; //проверка
$start = $page * $num - $num; //лимит
$all_article = mysql_query("SELECT * FROM `articles` ORDER by `id` asc LIMIT $start, $num") /запрос в базу(оптимизируй под себя
в запросе мы установили лимит на вывод из бд LIMIT $start, $num.
Вывод:
if($page-2>0) $page2left='<a href="index.php?page='.($page-2).'">'.($page-2).' </a>';
if($page-1>0) $page1left='<a href="index.php?page='.($page-1).'">'.($page-1).' </a>';
if($page+2<=$total) $page2right='<a href="index.php?page='.($page+2).'">'.($page+2).' </a>';
if($page+3<=$total) $page3right='<a href="index.php?page='.($page+3).'">'.($page+3).' </a>';
if($page+1<= $total) $page1right='<a href="index.php?page='.($page+1).'">'.($page+1).' </a>';
//этот код проверяет, какие ссылки выводить, (вперёд, назад).
Вывод ссылок:
echo $page2left.$page1left.'<font color="red">'.$page.'</font>'.$page1right.$page2right.$page3right;
//вот и всё

11 Дек 2010, 13:12
Istsam

kamuik,
Ты предлагаешь, сделать "первую" навигацию на ООП?
Ему нужно понять, как она работает, а не насувать всяких ООП классов.

11 Дек 2010, 13:14
Егор

вoзьми c Dcms 664

11 Дек 2010, 13:23
AutoRoot

Я пхп знаю хорошо! Спасибо kamuik он мне вчера и сегодня сильно помог! Установил навигацию получилось красиво!

11 Дек 2010, 13:40
Istsam

AutoRoot, ну тогда извини.
"Хорошо знающий PHP"

11 Дек 2010, 13:42
Replikon

AutoRoot, если ты PHP знаешь хорошо, то я Билл Гейтс.

11 Дек 2010, 16:01
XSS


function pagiNation($start, $items, $items_per_page, $links_per_page, $extraQueryString = "") {
    $pages = ceil($items / $items_per_page);
    if ($pages > 1) {
        $tmp = array();
        $page = ceil(($start + 1) / $items_per_page);
        $links = ceil($pages / $links_per_page);
        $link = ceil($page / $links_per_page);
        $page_start = $link * $links_per_page - $links_per_page;
        $page_end = $page_start + $links_per_page;
        $page_end = ($page_end < $pages + 1) ? $page_end : $pages;
        $first = $page_start * $items_per_page;
        $last = $pages * $items_per_page - $items_per_page;
        if ($link > 1) {
            $start = $first - $items_per_page * $links_per_page;
            $tmp[] = "<a href=\"{$_SERVER["PHP_SELF"]}?start=0{$extraQueryString}\" title=\"перв.\">&laquo;&laquo;</a>";
            $tmp[] = "<a href=\"{$_SERVER["PHP_SELF"]}?start={$start}{$extraQueryString}\" title=\"пред.\">&laquo;</a>";
        }
        for ($i = $page_start; $i < $page_end; ++$i) {
            $start = $i * $items_per_page;
            if ($page == $i + 1) {
                $tmp[] = "<strong>$page</strong>";
            }
            else {
                $tmp[] = "<a href=\"{$_SERVER["PHP_SELF"]}?start={$start}{$extraQueryString}\">".($i + 1)."</a>";
            }
        }
        if ($link < $links) {
            $start = $page_end * $items_per_page;
            $tmp[] = "<a href=\"{$_SERVER["PHP_SELF"]}?start={$start}{$extraQueryString}\" title=\"след.\">&raquo;</a>";
            $tmp[] = "<a href=\"{$_SERVER["PHP_SELF"]}?start={$last}{$extraQueryString}\" title=\"посл.\">&raquo;&raquo;</a>";
        }
        return implode("&nbsp;", $tmp);
    }
    return false;
}

12 Дек 2010, 18:29
Ответить на тему