Ребят, помогите немного с навигацией в php

(Ответов: 2, Просмотров: 647)
  1. Дипломник Аватар для hotsman
    • Регистрация: 14.06.2011
    • Сообщений: 213
    • Репутация: 3
    Вот код -

    PHP код:
     $chislo = 5; // ЧИСЛО СООБЩЕНИЙ НА СТРАНИЦЕ

     // ДЛЯ УДОБСТВА ОБОЗНАЧИМ ПЕРЕМЕННУЮ С ТЕКСТОМ ОШИБКИ
     $text_error = '<br />Ошибочка вышла!';

     // СОЕДЕНИМСЯ С MySQL
     $connect = mysql_connect ($server, $user, $pass);
     if (!$connect) {
     echo $text_error;
     exit;
     }

     // СОЕДЕНИЯЕМСЯ С БАЗОЙ ДАННЫХ
     $select = mysql_select_db($db);
     if (!$select) {
     echo $text_error;
     exit;
     }

     // СОЗДАЁМ ЗАПРОС
     $result = mysql_query("SELECT * from $table ORDER by id desc");
     // СЧИТАЕМ КОЛЛИЧЕСТВО ЗАПИСЕЙ В ТАБЛИЦЕ - У МЕНЯ ИХ 20
     $num_rows = mysql_num_rows($result);

     // А ТЕПЕРЬ СЧИТАЕМ НА СКОЛЬКО СТРАНИЦ НАМ РАЗБИТЬ ЗАПИСИ И ВЫДЕЛЯЕМ ЦЕЛОЕ ЧИСЛО
     $num_rows = round($num_rows/$chislo); // 20 ДЕЛИМ НА 5. СКОЛЬКО? :)


     // ЗДЕСЬ МЫ ПРОВЕРЯЕМ НА КАКОЙ СТРАНИЦЕ СЕЙЧАС ПОЛЬЗОВАТЕЛЬ
     if (isset($_GET['str'])) {
     $nav = $_GET['str'];
     }
     else {
     $nav = 0;
     }
     $nav = intval($nav); // ДЛЯ ЗАЩИТЫ ОТ НЕХОРОШИХ ДЯДЕНЕК МЫ ВЫДЕЛИМ ЦЕЛУЮ ЧАСТЬ $GET['str']




     // НАЧИНАЕМ ВЫВОДИТЬ САМУ ИНФОРМАЦИЮ ПОСТРАНИЧНО :)
     if (!isset($_GET['str'])) {
     $str = 0;
     }
     else {
     $str = $_GET['str']*$chislo - $chislo;
     }
     $nomer = $str + 5;
     // ФОРМИРУЕМ ЗАПРОС НУЖНОЙ НАМ ЧАСТИ ИНФОРМАЦИИ
     $result = mysql_query("SELECT * from $table ORDER by id asc limit $str, $nomer");
     // ИНАЧЕ ВЫВОДИМ ОШИБКУ
     if (!$result) {
     echo $text_error;
     exit;
     }

     echo '<div style="width: 40%;">';
     while ($row = mysql_fetch_array($result)) {


    printf ("<table align='center' class='lozungi'>
    <tr>
    <td class='name'>%s</td>
    </tr>
    <tr>
    <td class='yach'>%s</td>
    </tr>
    </table>", $row["name"], $row["text"]);

     
     }
     echo '</div>';
    ?>

    <div id="nav">
    <?php

    echo 'Навигация: ';


    // А ТЕПЕРЬ ВЫВОДИМ НОМЕРА СТРАНЦ
     
    for ($i=1$i<$num_rows$i++) {
     if (
    $i != $nav) {
     echo 
    '<a href="'.$PHP_SELF.'?str='.$i.'">'.$i.'</a> ';
     }
     else {
     
    // АКТИВНУЮ СТРАНИЦУ ДЕЛАЕМ НЕ ГИПЕРССЫЛКОЙ
     
    echo '<span>'.$i.'</span> ';
     }
     }

     echo 
    '<hr />'// ОТДЕЛИМ НАВИГАЦЮ ОТ КОНТЕНТА ДЛЯ НАГЛЯДНОСТИ


    mysql_close($connect);

    echo 
    'Навигация: ';

    ?>
    </div>
    на первой странице выводит 5, как нужно, а на остальных хаос, то по 7, то по 8, то по 10
    • 0
  2. Студент Аватар для Kartograff
    • Регистрация: 22.09.2011
    • Сообщений: 71
    • Репутация: 19
    Попробуйте сделать так:
    $nomer = $str * 5;
    // ФОРМИРУЕМ ЗАПРОС НУЖНОЙ НАМ ЧАСТИ ИНФОРМАЦИИ
    $result = mysql_query("SELECT * from $table ORDER by id asc limit $nomer, $chislo");
    Последний раз редактировалось Kartograff; 01.02.2012 в 13:50.
    • 1

    Спасибо сказали:

    hotsman(01.02.2012),
  3. Дипломник Аватар для hotsman
    • Регистрация: 14.06.2011
    • Сообщений: 213
    • Репутация: 3
    о, спасибо большое! помогло!
    оч благодарен!
    • 0

Похожие темы

Темы Раздел Ответов Последний пост
Проблема с навигацией в категориях wordpress (Помогите)
Web программирование 4 22.06.2011 05:00
Проблема с навигацией в категориях wordpress (Помогите)
Блоги 0 17.06.2011 10:35
Проблемы с навигацией по блогу
Софт, скрипты, сервисы 5 17.06.2011 10:28
Ребят помогите. Вирус на сайте
Прочее 0 06.02.2011 04:36
Ребят где дешевле зарегать co.uk?
Хостинг и Серверы 1 10.12.2010 22:44

У кого попросить инвайт?

Вы можете попросить инвайт у любого модератора:

Информеры