Лексеич
Московский калмык
Предлагаю скрипт постраничного вывода.
Написал себе сегодня. Может еще кому пригодится. Критика приветствуется.
url вида: http://www.mysite.ru/log.php?id=1&pid=4
Написал себе сегодня. Может еще кому пригодится. Критика приветствуется.
url вида: http://www.mysite.ru/log.php?id=1&pid=4
PHP:
session_start();
include "sess_check.php"; // авторизован?
// Проверка ГЕТов
if (!$_GET['id'])
{
$id = $_SESSION['user_id'];
}
else
{
$id = (integer)$_GET['id'];
};
if (!$_GET['pid'])
{
$pid = 1;
}
else
{
$pid = (integer)$_GET['pid'];
};
// Общее число записей
$res = mysql_query("SELECT COUNT(f_id) FROM tab1 WHERE pers_id = \"$id\"");
$record = mysql_fetch_array($res);
$logs_num = $record[0];
// Записей на страницу:
$recs_per_page = 30;
// Число страниц:
$page_max = $logs_num%$recs_per_page;
if ($pid <= 0 or $pid > $page_max) // проверка ИД страницы на соответствие интервалу
{
$pid = 1;
};
// Записей на последней странице:
$last_page_recs_num = $logs_num-$recs_per_page*($page_max-1);
// Значение для "LIMIT'a"
$limit_from = ($pid-1)*$recs_per_page;
// Выборка записей для данной страницы
if ($pid == $page_max) // для ПОСЛЕДНЕЙ
{
$logs_to_page_query = mysql_query("SELECT f_id, pers_id, end, time_f FROM tab1 WHERE pers_id = \"$id\" AND end != 0 ORDER BY time_f DESC LIMIT $limit_from,$last_page_recs_num");
$show_recs = $last_page_recs_num; // используем при выводе
}
else // для НЕ ПОСЛЕДНЕЙ
{
$logs_to_page_query = mysql_query("SELECT f_id, pers_id, end, time_f FROM tab1 WHERE pers_id = \"$id\" AND end != 0 ORDER BY time_f DESC LIMIT $limit_from,$recs_per_page");
$show_recs = $recs_per_page; // используем при выводе
};
// Логин перса
$pers = mysql_fetch_array(mysql_query("SELECT login FROM user WHERE id = \"$id\""));
// Формируем номера страниц вида: <<предидущая 3 следующая>>
if ($logs_num > $recs_per_page) // а нужны ли они вообще?
{
if ($pid > 1) // ссылка на первую страницу
{
echo '<a href="log.php?id='.$id.'&pid='.($pid-1).'"><<предидущая</a> ';
};
echo $pid; // текущая
if ($pid < $page_max) // ссылка на последнюю страницу
{
echo ' <a href="log.php?id='.$id.'&pid='.($pid+1).'">следующая>></a>';
};
};
//----------Конец формирования номеров
// Вывод записей на страницу
echo '<br>';
for ($i=0; $i<$show_recs; $i++)
{
$record = mysql_fetch_array($logs_to_page_query);
echo '<a href="user_result.php?ew='.$record[f_id].'" class="hder3">'.date("m.d.y | H:i:s",$record[time_f]).'</a> '.$pers[login].' vs bot. ';
if ($record[end] == 1) echo 'на один';
if ($record[end] == 2) echo 'на два';
if ($record[end] == 3) echo 'на три';
echo '<br>';
};