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

BlackShadow

Well-known member
04.02.2011
111
3
#1
У меня на сайте http://pokerstat.xe0.ru/ есть статистика вывода игроков, и, как вы видите, игроков больше, чем может в себя вместить страница.
Подскажите, как создать НАИПРОСТЕШЕЕ перелистывание... чтобы уж очень по нубски...
 
A

ABarmin

#2
Чтобы вообще почти ничего не писать, можете попробовать плагин 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;
?>
 

BlackShadow

Well-known member
04.02.2011
111
3
#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";


?>
 

BlackShadow

Well-known member
04.02.2011
111
3
#4
Всё, разобрался.... Такой вот код вставил:
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>] ";
}
}
Перелистывание работает...