|
|
|
| вот такой скрипт
<?
require("mysql.class");
$my=new class_mysql;
$my->sql_connect();
///////////////////////////////////////////////////////////////////////
/// Начинаем мутить постраничную навигацию
///////////////////////////////////////////////////////////////////////
$num_post=3;
@$page = $_GET['page']; // Определяем текущую страницу
//// Определяем общее число сообщений в базе
$result=mysql_query("SELECT COUNT(*) FROM $my->sql_tbname");
$posts = mysql_result($result,0);
//Находим общее число страниц
$total = intval(($posts - 1) / $num_post) + 1;
// Определяем начало сообщений для текущей страницы
$page = intval($page);
// Если значение $page меньше единицы или отрицательно
// переходим на первую страницу
// А если слишком большое, то переходим на последнюю
if(empty($page) or $page < 0) $page = 1;
if($page > $total) $page = $total;
//Вычисляем начиная с какого номера следует выводить сообщения
$start = $page * $num_post - $num_post;
//////////////////////////////////////////////////////////////////$XRENb=$posts - ($num_post * $total);
// Выбираем $num_page сообщений начиная с номера $start
$result = mysql_query("SELECT * FROM tb_gvest LIMIT $start, $num_post");
// В цикле переносим результаты запроса в массив $postrow
while($postrow[] = mysql_fetch_array($result))
/////////////////////////////////////////////////////////////////////////
// Тут уже непосредственный вывод сообщений
/////////////////////////////////////////////////////////////////////////
// Определяем таблицу и заголовок
echo "<html>
<head>
<title>Клёвая штука</title>
</head>
<body>";
echo "<table border=1 width=100%>";
echo "<tr bgcolor=#eeeeee><td>имя</td><td>сообщение</td><td>e-mail</td><td>icq</td></tr>";
for($i=0; $i < $num_post; $i++)
{
echo "<tr>
<td>".@$postrow[$i]['name']."</td>
<td>".@$postrow[$i]['msg']."</td>
<td>".@$postrow[$i]['mail']."</td>
<td>".@$postrow[$i]['icq']."</td>
</tr>";
}
echo "</table>";
/////////////////////////////////////////////////////////////////////////////////////////
// Теперь выводим ссылки навигации
/////////////////////////////////////////////////////////////////////////////////////////
// Проверяем нужны ли стрелки назад
if ($page != 1) $pervpage = '<a href= ./index.php?page=1><<</a>
<a href= ./index.php?page='. ($page - 1) .'><</a> ';
// Проверяем нужны ли стрелки вперед
if ($page != $total) $nextpage = ' <a href= ./index.php?page='. ($page + 1) .'>></a>
<a href= ./index.php?page=' .$total. '>>></a>';
// Находим две ближайшие станицы с обоих краев, если они есть
if($page - 2 > 0) $page2left = ' <a href= ./index.php?page='. ($page - 2) .'>'. ($page - 2) .'</a> | ';
if($page - 1 > 0) $page1left = '<a href= ./index.php?page='. ($page - 1) .'>'. ($page - 1) .'</a> | ';
if($page + 2 <= $total) $page2right = ' | <a href= ./index.php?page='. ($page + 2) .'>'. ($page + 2) .'</a>';
if($page + 1 <= $total) $page1right = ' | <a href= ./index.php?page='. ($page + 1) .'>'. ($page + 1) .'</a>';
// Вывод меню
echo @$pervpage.@$page2left.@$page1left.'<b>'.@$page.'</b>'.@$page1right.@$page2right.@$nextpage;
echo "</body></html>";
// Освобождаем оперативку ...
|
сообщения выводятся по 3 штуки на странице ... и фишка в том, что если например в базе 4 сообщения, то на второй странице будет одно сообщение и 2 <tr> .... которые некрасиво выглядят и ваще раздражают ... а если в базе ваще нет сообщений, то на первый странице ваще выводятся 3 <tr> ...
и былоб ваще замечательно, еслиб вы помогли модифицировать её в вид как на вашем форуме ...
Заранее спасибо. | |
|
|
|
|
|
|
|
для: Oligarx
(17.04.2006 в 00:30)
| | попробуй так
<?
require("mysql.class");
$my=new class_mysql;
$my->sql_connect();
///// выводим html
echo "<html>
<head>
<title>Клёвая штука</title>
</head>
<body>";
///
///////////////////////////////////////////////////////////////////////
/// Начинаем мутить постраничную навигацию
///////////////////////////////////////////////////////////////////////
$num_post=3;
@$page = $_GET['page']; // Определяем текущую страницу
//// Определяем общее число сообщений в базе
$result=mysql_query("SELECT COUNT(*) FROM $my->sql_tbname");
$posts = mysql_result($result,0);
//Находим общее число страниц
$total = intval(($posts - 1) / $num_post) + 1;
// Определяем начало сообщений для текущей страницы
$page = intval($page);
// Если значение $page меньше единицы или отрицательно
// переходим на первую страницу
// А если слишком большое, то переходим на последнюю
if(empty($page) or $page < 0) $page = 1;
if($page > $total) $page = $total;
//Вычисляем начиная с какого номера следует выводить сообщения
$start = $page * $num_post - $num_post;
// Выбираем $num_page сообщений начиная с номера $start
$result2= mysql_query("SELECT * FROM tb_gvest LIMIT $start, $num_post");
if($posts == 0){
echo "<br><center><font color=red>По вашему запросу ничего не найдено!</font></center>";
}
else{
//////////////////////////////////////////////////////////////////////////////////////////////////
while($postrow = mysql_fetch_array($result2)) {
echo "<table border=1 width=100%>";
echo "<tr bgcolor=#eeeeee><td>имя</td><td>сообщение</td><td>email</td><td>icq</td></tr>";
echo "<tr>
<td>".@$postrow['name']."</td>
<td>".@$postrow['msg']."</td>
<td>".@$postrow['mail']."</td>
<td>".@$postrow['icq']."</td>
</tr>";
echo "</table>";
}
/////////////////////////////////////////////////////////////////////////////////////////
}
// Теперь выводим ссылки навигации
/////////////////////////////////////////////////////////////////////////////////////////
// Проверяем нужны ли стрелки назад
if ($page != 1) $pervpage = '<a href= ./index.php?page=1><<</a>
<a href= ./index.php?page='. ($page - 1) .'><</a> ';
// Проверяем нужны ли стрелки вперед
if ($page != $total) $nextpage = ' <a href= ./index.php?page='. ($page + 1) .'>></a>
<a href= ./index.php?page=' .$total. '>>></a>';
// Находим две ближайшие станицы с обоих краев, если они есть
if($page - 2 > 0) $page2left = ' <a href= ./index.php?page='. ($page - 2) .'>'. ($page - 2) .'</a> | ';
if($page - 1 > 0) $page1left = '<a href= ./index.php?page='. ($page - 1) .'>'. ($page - 1) .'</a> | ';
if($page + 2 <= $total) $page2right = ' | <a href= ./index.php?page='. ($page + 2) .'>'. ($page + 2) .'</a>';
if($page + 1 <= $total) $page1right = ' | <a href= ./index.php?page='. ($page + 1) .'>'. ($page + 1) .'</a>';
// Вывод меню
echo @$pervpage.@$page2left.@$page1left.'<b>'.@$page.'</b>'.@$page1right.@$page2right.@$nextpage;
echo "</body></html>";
// Освобождаем оперативку ...
|
| |
|
|
|