☆★☆БАТЯ☆★☆™
Участник
- Сообщения
- 2,587
- Реакции
- 1,344
Ковыряю вебморду статистики RankMe, не могу сообразить, как сделать постраничный вывод данных из БД, количество записей растет и страницу статистики долго прокручивать. Хочу сделать вывод 30 строк на страницу.
Вот код:
Нумерация страниц появилась, вроде листается, но список игроков не разбивается постранично, так же все на одной странице.
В чем промах?
Вот код:
<?php
global $bd_table;
$query1 = "SELECT * FROM `$bd_table` ORDER BY score DESC";
$resultado1 = mysql_query($query1,$conexao);
$query = "SELECT COUNT(*) FROM `rankme`";
$res = mysql_query($query);
$count_records = mysql_fetch_row($res);
$count_records = $count_records[0];
$num_pages = ceil($count_records / $on_page);
$current_page = isset($_GET['page']) ? (int)$_GET['page'] : 1;
if ($current_page < 1)
{
$current_page = 1;
}
elseif ($current_page > $num_pages)
{
$current_page = $num_pages;
}
$start_from = ($current_page - 1) * $on_page;
function universal_link_bar($page, $count, $pages_count, $show_link)
{
if ($pages_count == 1) return false;
$sperator = ' | ';
$style = 'style="color: red; text-decoration: none; text-shadow: 1px 1px 3px yellow, 0 0 1em yellow;"';
$begin = $page - intval($show_link / 2);
unset($show_dots);
if ($pages_count <= $show_link + 1) $show_dots = 'no';
if (($begin > 2) && !isset($show_dots) && ($pages_count - $show_link > 2)) {
echo '<a '.$style.' href='.$_SERVER['php_self'].'?page=1> первая </a> ';
}
for ($j = 0; $j < $page; $j++) {
if (($begin + $show_link - $j > $pages_count) && ($pages_count-$show_link + $j > 0)) {
$page_link = $pages_count - $show_link + $j;
if (!isset($show_dots) && ($pages_count-$show_link > 1)) {
echo ' <a '.$style.' href='.$_SERVER['php_self'].'?page='.($page_link - 1).'><b>...</b></a> ';
$show_dots = "no";
}
echo ' <a '.$style.' href='.$_SERVER['php_self'].'?page='.$page_link.'>'.$page_link.'</a> '.$sperator;
} else continue;
}
for ($j = 0; $j <= $show_link; $j++)
{
$i = $begin + $j;
if ($i < 1) {
$show_link++;
continue;
}
if (!isset($show_dots) && $begin > 1) {
echo ' <a '.$style.' href='.$_SERVER['php_self'].'?page='.($i-1).'><b>...</b></a> ';
$show_dots = "no";
}
if ($i > $pages_count) break;
if ($i == $page) {
echo ' <a '.$style.' ><b>'.$i.'</b></a> ';
} else {
echo ' <a '.$style.' href='.$_SERVER['php_self'].'?page='.$i.'>'.$i.'</a> ';
}
if (($i != $pages_count) && ($j != $show_link)) echo $sperator;
if (($j == $show_link) && ($i < $pages_count)) {
echo ' <a '.$style.' href='.$_SERVER['php_self'].'?page='.($i+1).'><b>...</b></a> ';
}
}
if ($begin + $show_link + 1 < $pages_count) {
echo ' <a '.$style.' href='.$_SERVER['php_self'].'?page='.$pages_count.'> последняя </a>';
}
return true;
}
mysql_connect('localhost', '5_rank', 'password') or die('error! Нет соединения с сервером mysql!');
mysql_select_db('5_rank') or die('error! Нет соединения с базой данных!');
$perpage = 30;
if (empty($_GET['page']) || ($_GET['page'] <= 0)) {
$page = 1;
} else {
$page = (int) $_GET['page'];
}
$count = mysql_numrows(mysql_query('select * from rankme')) or die('error! Записей не найдено!');
$pages_count = ceil($count / $perpage);
if ($page > $pages_count) $page = $pages_count;
$start_pos = ($page - 1) * $perpage;
universal_link_bar($page, $count, $pages_count, 30);
echo '<p><b></b></p>';
$result = mysql_query('select * from rankme limit '.$start_pos.', '.$perpage) or die('error!');
while ($row = mysql_fetch_array($result)) {
echo '<p>'.$row['some_field'].'</p>';
}
?>
global $bd_table;
$query1 = "SELECT * FROM `$bd_table` ORDER BY score DESC";
$resultado1 = mysql_query($query1,$conexao);
$query = "SELECT COUNT(*) FROM `rankme`";
$res = mysql_query($query);
$count_records = mysql_fetch_row($res);
$count_records = $count_records[0];
$num_pages = ceil($count_records / $on_page);
$current_page = isset($_GET['page']) ? (int)$_GET['page'] : 1;
if ($current_page < 1)
{
$current_page = 1;
}
elseif ($current_page > $num_pages)
{
$current_page = $num_pages;
}
$start_from = ($current_page - 1) * $on_page;
function universal_link_bar($page, $count, $pages_count, $show_link)
{
if ($pages_count == 1) return false;
$sperator = ' | ';
$style = 'style="color: red; text-decoration: none; text-shadow: 1px 1px 3px yellow, 0 0 1em yellow;"';
$begin = $page - intval($show_link / 2);
unset($show_dots);
if ($pages_count <= $show_link + 1) $show_dots = 'no';
if (($begin > 2) && !isset($show_dots) && ($pages_count - $show_link > 2)) {
echo '<a '.$style.' href='.$_SERVER['php_self'].'?page=1> первая </a> ';
}
for ($j = 0; $j < $page; $j++) {
if (($begin + $show_link - $j > $pages_count) && ($pages_count-$show_link + $j > 0)) {
$page_link = $pages_count - $show_link + $j;
if (!isset($show_dots) && ($pages_count-$show_link > 1)) {
echo ' <a '.$style.' href='.$_SERVER['php_self'].'?page='.($page_link - 1).'><b>...</b></a> ';
$show_dots = "no";
}
echo ' <a '.$style.' href='.$_SERVER['php_self'].'?page='.$page_link.'>'.$page_link.'</a> '.$sperator;
} else continue;
}
for ($j = 0; $j <= $show_link; $j++)
{
$i = $begin + $j;
if ($i < 1) {
$show_link++;
continue;
}
if (!isset($show_dots) && $begin > 1) {
echo ' <a '.$style.' href='.$_SERVER['php_self'].'?page='.($i-1).'><b>...</b></a> ';
$show_dots = "no";
}
if ($i > $pages_count) break;
if ($i == $page) {
echo ' <a '.$style.' ><b>'.$i.'</b></a> ';
} else {
echo ' <a '.$style.' href='.$_SERVER['php_self'].'?page='.$i.'>'.$i.'</a> ';
}
if (($i != $pages_count) && ($j != $show_link)) echo $sperator;
if (($j == $show_link) && ($i < $pages_count)) {
echo ' <a '.$style.' href='.$_SERVER['php_self'].'?page='.($i+1).'><b>...</b></a> ';
}
}
if ($begin + $show_link + 1 < $pages_count) {
echo ' <a '.$style.' href='.$_SERVER['php_self'].'?page='.$pages_count.'> последняя </a>';
}
return true;
}
mysql_connect('localhost', '5_rank', 'password') or die('error! Нет соединения с сервером mysql!');
mysql_select_db('5_rank') or die('error! Нет соединения с базой данных!');
$perpage = 30;
if (empty($_GET['page']) || ($_GET['page'] <= 0)) {
$page = 1;
} else {
$page = (int) $_GET['page'];
}
$count = mysql_numrows(mysql_query('select * from rankme')) or die('error! Записей не найдено!');
$pages_count = ceil($count / $perpage);
if ($page > $pages_count) $page = $pages_count;
$start_pos = ($page - 1) * $perpage;
universal_link_bar($page, $count, $pages_count, 30);
echo '<p><b></b></p>';
$result = mysql_query('select * from rankme limit '.$start_pos.', '.$perpage) or die('error!');
while ($row = mysql_fetch_array($result)) {
echo '<p>'.$row['some_field'].'</p>';
}
?>
Нумерация страниц появилась, вроде листается, но список игроков не разбивается постранично, так же все на одной странице.
В чем промах?