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

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

  1. BlackShadow

    BlackShadow Well-Known Member

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

    ABarmin Гость

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

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

    Код (Text):
    <?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

    Регистрация:
    4 фев 2011
    Сообщения:
    111
    Симпатии:
    1
    мммм... я не использую ни 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

    Регистрация:
    4 фев 2011
    Сообщения:
    111
    Симпатии:
    1
    Всё, разобрался.... Такой вот код вставил:
    Код (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>] ";
    }
    }
    Перелистывание работает...
     
Загрузка...

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