Как Создать Постраничный Вывод Информации?

Тема в разделе "PHP программирование", создана пользователем BlackShadow, 29 июн 2012.

  1. BlackShadow

    BlackShadow Well-Known Member

    Репутация:
    0
    Регистрация:
    4 фев 2011
    Сообщения:
    111
    Симпатии:
    3
    У меня на сайте http://pokerstat.xe0.ru/ есть статистика вывода игроков, и, как вы видите, игроков больше, чем может в себя вместить страница.
    Подскажите, как создать НАИПРОСТЕШЕЕ перелистывание... чтобы уж очень по нубски...
     
  2. ABarmin

    ABarmin Гость

    Репутация:
    0
    Чтобы вообще почти ничего не писать, можете попробовать плагин Tablesorter, в нем есть возможность сделать пагинацию

    Сложнее - откорректировать SQL запрос как-то так:

    Код:
    <?php
    $page = $_GET['page'];
    if (!isset($page)) {
    $page = $_POST['page'];
    }
    if (!isset($page)) {
    $page = 0;
    }
    $itemsPerPage = 10;
    $start = $page * $itemsPerPage;
    
    $q = "select * from pages limit ".$start.", ".$itemsPerPage;
    ?>
     
  3. BlackShadow

    BlackShadow Well-Known Member

    Репутация:
    0
    Регистрация:
    4 фев 2011
    Сообщения:
    111
    Симпатии:
    3
    мммм... я не использую ни SQL ни jQuery. У меня ВСЕ данные записаны в текстовые файлы... если надо - вот код файла, который генерирует таблицу игроков:

    Дело в том, что я никак не сообразил, как запихнуть такой вид данных в mysql. xml я тоже думал, но тоже не сообразил структуру. пришлось создавать текстовыми файлами, потому что
    1) я должен добавлять новых игроков
    2) должен добалять новые результаты,
    то есть - расширение таблицы и вширь и в длину.. поэтому пришлось сделать так:

    <div class="sp-wrap"><div class="sp-head-wrap"><div class="sp-head folded clickable">Говнокод</div></div><div class="sp-body"><div class="sp-content">
    PHP:
    <?php
    echo "<center><table width=\"90%\" cellspacing=\"3\" cellpadding=\"3\" border=\"1\">";

    $plus 0;
    $minus 0;

    // светло серый #bbbbbb
    // серый #cadaba

    $col 1;

    $BEGIN $_GET['b'];
    $LIMIT $_GET['l'];

    $players "";
    $fl "sys/players.cou";
    $fp fopen($fl,"r");
    while(!
    feof($fp)){
    $players .= fgets($fp,2);
    }
    fclose($fp);

    $days "";
    $fl "sys/days.cou";
    $fp fopen($fl,"r");
    while(!
    feof($fp)){
    $days .= fgets($fp,2);
    }
    fclose($fp);

    if ((
    $BEGIN == "")||($BEGIN 1)){
    $BEGIN 1;
    }
    if ((
    $LIMIT == "")||($LIMIT $players)){

    $LIMIT 13;
    }




    if (
    $players == 0){
    echo 
    "<tr><td align=\"center\">НЕТ АКТИВНЫХ ИГРОКОВ</td></tr>";
    } else {
    $tds "";

    for (
    $i=$BEGIN$i<=$LIMIT$i++){
    $name "";
    $fl "db/player".$i.".nm";
    $fp fopen($fl,"r");
    while(!
    feof($fp)){
    $name .= fgets($fp,2);
    }
    fclose($fp);
    $tds .= "<td align=\"center\"><b>".$i."<br>".$name."</b></td>\n";
    }
    $capt "<tr><td align=\"center\" width=\"1%\"><b>ДНИ</b></td>".$tds."</tr>\n";


    $reztd "";
    $reztr "";

    for (
    $j=1$j<=$days$j++){

    if (
    $col == 1){
    $bg "#bbbbbb";
    $col *= -1;
    } else {
    $bg "#cadaba";
    $col *= -1;
    }

    $day "";
    $fl "db/day".$j.".day";
    $fp fopen($fl,"r");
    while(!
    feof($fp)){
    $day .= fgets($fp,2);
    }
    fclose($fp);
    for (
    $i=$BEGIN$i<=$LIMIT$i++){
    $rez "";
    $fl "db/p".$i."d".$j.".mon";

    if (
    file_exists($fl)){
    $fp fopen($fl,"r");
    while(!
    feof($fp)){
    $rez .= fgets($fp,2);
    }
    fclose($fp);


    if (
    $rez == 0){
    $rez "===";
    }



    } else {
    $rez "---";
    }



    $reztd .= "<td bgcolor=\"".$bg."\" align=\"center\">".$rez."</td>\n";

    }



    if ((
    $_COOKIE["editor"]=="Цигульский")||($_COOKIE["editor"]=="Володин")){
    $dday "<a href=\"editDay.php?day=".$j."\">".$day."</a>";
    } else {
    $dday $day;
    }


    $reztr .= "<tr><td bgcolor=\"".$bg."\" align=\"center\" width=\"1%\"><b>".$dday."</b></td>".$reztd."</tr>\n";
    $reztd "";

    }
    }

    echo 
    $capt;
    echo 
    $reztr;


    echo 
    "</table></center>

    <div style=\"position: fixed; width: 100%; background-color: white;\">
    <hr>
    <center>
    <form action=\"\" method=\"GET\">
    Показать игроков с <input type=\"text\" name=\"b\" value=\"
    $BEGIN\" size=\"3\"> по <input type=\"text\" name=\"l\" value=\"$LIMIT\" size=\"3\">
    \ из 
    $players <input type=\"submit\" name=\"show\" value=\"Показать\">
    </form>
    </center>
    <hr>

    "
    ;



    for (
    $i=1$i<=$players$i++){

    for (
    $d=$days$d>=1$d--){

    $fl "db/p".$i."d".$d.".mon";

    if (
    file_exists($fl)){

    $rez "";
    $fp fopen($fl,"r");
    while(!
    feof($fp)){
    $rez .= fgets($fp,2);
    }
    fclose($fp);

    if (
    $rez 0){
    $plus += $rez;
    } else
    if (
    $rez 0) {
    $minus += $rez;
    }

    break;
    }


    }

    }

    $del $plus $minus;

    if (
    $del == 0){
    $out "ВСЕ ИГРОКИ ЗАПИСАНЫ!";
    } else
    if (
    $del 0){
    $out "Кто-то проиграл и съе**ся не записавшись!";
    } else
    if (
    $del 0){
    $out "Кто-то выиграл и съе**ся не записавшись!";
    }

    echo 
    "
    <b>ИТОГ ВСЕХ ИГРОКОВ (
    $players чел.):</b><br>
    Плюсы: 
    $plus руб.<br>
    Минусы: 
    $minus руб.<br>
    Разница: 
    $del руб.<hr>
    <b>ВЫВОД:</b> 
    $out";


    ?>
     
  4. BlackShadow

    BlackShadow Well-Known Member

    Репутация:
    0
    Регистрация:
    4 фев 2011
    Сообщения:
    111
    Симпатии:
    3
    Всё, разобрался.... Такой вот код вставил:
    PHP:
    $lim 13;
    $tPages ceil($players/$lim);

    for (
    $p=1$p<=$tPages$p++){
    $bb $p $lim $lim 1;
    $ll $p $lim;
    if (
    $BEGIN != $bb){
    echo 
    "[<a href=\"index.php?b=$bb&l=$ll\">$p</a>] ";
    } else {
    echo 
    "[<b>$p</b>] ";
    }
    }
    Перелистывание работает...
     
Загрузка...

Поделиться этой страницей