За последние 24 часа нас посетили 20024 программиста и 1001 робот. Сейчас ищут 310 программистов ...

листалка страниц

Тема в разделе "Вопросы от блондинок", создана пользователем pnata, 15 май 2006.

  1. pnata

    pnata Guest

    вот такой код
    <?
    function link_bar($page, $pages_count)
    {
    for ($j = 1; $j <= $pages_count; $j++)
    {

    if ($j == $page) {
    echo ' <a style="color: #808000;" ><b>'.$j.'</b></a> ';
    } else {
    echo ' <a style="color: #808000;" href='.$_SERVER['PHP_SELF'].'?page='.$j.'>'.$j.'</a> ';
    }
    if ($j != $pages_count) echo ' ';
    }
    return true;
    }

    $perpage = 10;

    if (empty($_GET['page']) || ($_GET['page'] <= 0)) {
    $page = 1;
    } else {
    $page = (int) $_GET['page'];
    }

    $count = mysql_numrows(mysql_query('SELECT * FROM ticket')) or die('Error! Записей не найдено!');
    $pages_count = ceil($count / $perpage);


    if ($page > $pages_count) $page = $pages_count;
    $start_pos = ($page - 1) * $perpage;

    link_bar($page, $pages_count);

    echo '<p><b>Постраничный вывод информации</b></p>';
    $result = mysql_query('SELECT * FROM ticket LIMIT '.$start_pos.', '.$perpage) or die('Error!');
    while ($row = mysql_fetch_array($result)) {
    echo '<p>'.$row['some_field'].'</p>';
    }

    но почему не ограничивает? выводит всю инфу как и раньше только цифорки страниц сверху добавились и все :think :?:
     
  2. pnata

    pnata Guest

    никто мне не поможет :(
    буду думать....
     
  3. pnata

    pnata Guest

    ну млин! уже 20 просмотров и ни одного совета! (только не надо опять меня замуж гнать :))
     
  4. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    напомни вечерком - как всегда напишу ...
     
  5. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    из них 19 твои? 8)))))
     
  6. pnata

    pnata Guest

    да не я вроде 3 раза заходила... может циклит ? :think
     
  7. pnata

    pnata Guest

    440hz
    вечером домой и никаких компов-видеть не могу уже....(понедельник день тяжелый)
     
  8. pnata

    pnata Guest

    привет всем! зря тему закрыли-суть была не в знакомстве!
     
  9. SeregA

    SeregA Активный пользователь

    С нами с:
    2 фев 2006
    Сообщения:
    269
    Симпатии:
    0
    Адрес:
    Saint Petersburg, Russia
    Лучше сделай так:
    <?
    $rc=3; //Скока на одной странице записей
    $min=$spage*$rc;
    $max=$rc;
    $sql_query="select * from news limit $min,$max";
    $result=sql_execute($sql_query,$conn_id);
    $num_results=mysql_num_rows($result);
    if (mysql_num_rows($result))
    {

    for ($i=0; $i<$num_results; $i++)
    {
    $row=mysql_fetch_array($result);
    echo '<b>'.$row[date].'</b><br>';
    echo '<a href = "/?module=news&do=show&id='.$row[id].'">'.$row[miniman].'</a><br><br>';
    }
    $sql_querya="select * from news";
    $resulta=sql_execute($sql_querya,$conn_id);
    $num_resultsa=mysql_num_rows($resulta);
    $divide=$num_resultsa/3;
    $spages=intval($divide);
    if($num_resultsa <= $rc)
    {
    // echo " <b>&lt;&lt;</b> [ ";
    // echo "1";
    }
    else
    {
    if($divide==$spages)
    $lol=$spages;
    else
    $lol=$spages+1;
    echo "<a href=/?spage=".($spage-1)."><b>&lt;&lt;</b></a> [ ";
    for($k=0; $k<=$lol-1; $k++)
    {
    $cur_spage=$k+1;
    if($k!=$spage)
    {
    echo " <a href=/?spage=$k>$cur_spage</a> ";
    }
    else
    echo "$cur_spage";
    }

    }

    if ($spage==$spages)
    {
    echo " ]";
    }
    else
    {
    echo " ] <a href=/?spage=".($spage+1)."><b>&gt;&gt;</b></a>";
    }
    } else {
    echo $lang['NEWS_NONEWSFOUND'];
    }
    ?>

    Сорри, но времениу меня мало :) Переделай чуток, а то это на отображение 3х новостей и помоему случайным образом :) А нет, последних :)

    Долго ты ждала :)

    Удачи :)
     
  10. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    что стоит новую начать?
     
  11. pnata

    pnata Guest

    440hz
    а потом опять на полуслове раз и закроешь?
     
  12. pnata

    pnata Guest

    SeregA
    спасибо :) а чем мой код был плох? и мне нужно переход на другую страницу, а не выбор новостей, то есть чтоб после 10 записей 11 переходила на следующую страницу (например)
     
  13. SeregA

    SeregA Активный пользователь

    С нами с:
    2 фев 2006
    Сообщения:
    269
    Симпатии:
    0
    Адрес:
    Saint Petersburg, Russia
    Ну вот там это и есть!! просто вырежи оттуда новости :) (Это был один из моих первых скриптов :))
     
  14. SeregA

    SeregA Активный пользователь

    С нами с:
    2 фев 2006
    Сообщения:
    269
    Симпатии:
    0
    Адрес:
    Saint Petersburg, Russia
    А времени самому вырезать у меня щас нет :)
     
  15. pnata

    pnata Guest

    SeregA
    спасибо,попробую:) а в анапе сейчас жарко? хочу на море! :)
     
  16. pnata

    pnata Guest

    ну почему странички не листаются? :(
     
  17. pnata

    pnata Guest

    ну не переносится инфо на другую страницу!все испробывала уже :(
     
  18. Mavir

    Mavir Guest

    Проверил код с первого поста, изменил только название таблицы и поля на свое и вставил подключение в БД. Код правильно работал.
    Единственное, что могу посоветовать, заменить функцию mysql_numrows на mysql_num_rows и проконтролировать значения переменных $page, $count, $start_pos. Но если выводится циферки вверху страницы, то они должны быть правильными. Ну и посмотреть как выглядит запрос
    'SELECT * FROM ticket LIMIT '.$start_pos.', '.$perpage
     
  19. pnata

    pnata Guest

    что именно?
     
  20. Mavir

    Mavir Guest

    print 'SELECT * FROM ticket LIMIT '.$start_pos.', '.$perpage;

    Если выводятся все записи, то в этом виноват только запрос.
     
  21. pnata

    pnata Guest

    Mavir
    и что делать?
     
  22. Mavir

    Mavir Guest

    Перед или после
    $result = mysql_query('SELECT * FROM ticket LIMIT '.$start_pos.', '.$perpage) or die('Error!');
    вставить
    print 'SELECT * FROM ticket LIMIT '.$start_pos.', '.$perpage;
    и посмотреть какой запрос выведется
     
  23. pnata

    pnata Guest

    print 'SELECT * FROM ticket LIMIT '.$start_pos.', '.$perpage;
    вот это и выводится
     
  24. pnata

    pnata Guest

    SELECT * FROM ticket LIMIT 0, 10
     
  25. Mavir

    Mavir Guest

    Странно. А может записей меньше 10 :)