|
|
|
| Здравствуйте, у Вас на форуме я нашла постраничный вывод, переделала его под свое, но
осталась маленькая проблемка, не получается дописать "назад" и "вперед" чтоб в одну строчку
выводилось к примеру максимум 10 номеров, а потом чтоб посмотреть 11 нужно нажимать
вперед... вот как такое сделать? подскажите пожалуйста.
вот ссылка на то, откуда я брала постраничный вывод:
http://www.softtime.ru/forum/read.php?id_forum=3&id_theme=14131
я взяла вариант не 1 2 3 а 1-10 11-20, мне это больше подходит | |
|
|
|
|
|
|
|
для: solomusic
(28.08.2008 в 16:28)
| | ой, все я со всем разобралась | |
|
|
|
|
|
|
|
для: solomusic
(28.08.2008 в 17:10)
| | только нашла одну ошибку... как ее исправить? у меня номерация идет не по порядку, и
некоторых номеров вообще нет, ибо удаляется. А выводиться страниц на много больше чем
нужно... Вот к примеру есть информации на 4 страницы с постраничным выводом по 20.
Последний номер 299 и 1. Естественно всех 299 строчек нету. А выводит страниц на все 299.
Как это исправить???
вот весь код:
<?php
ini_set('display_errors',1);
Error_Reporting(E_ALL & ~E_NOTICE);
// Устанавливаем соединение с сервером MySQL
require_once("config.php");
// Элемент постраничной навигация
if(empty($_GET['page'])) $page = 1;
else $page = $_GET['page'];
// Число ссылок в постраничной навигации
$page_link = 10;
// Число позиций на странице
$pnumber = 20;
// Постраничная навигация
$first = ($page - 1)*$pnumber;
// Формируем и выполняем SQL-запросы
$query = "SELECT COUNT(*) FROM dob";
$num = mysql_query($query);
if(!$num) exit("Ошибка при обращении к таблице");
// Ввыводим ссылки на другие страницы
$total = mysql_result($num,0);
// Формируем SQL-запрос на извлечение записей
$query = "SELECT * FROM dob WHERE `type` LIKE 'aa' ORDER BY id desc LIMIT $first, $pnumber ";
$dmn = mysql_query($query);
if(!$dmn) exit("Ошибка при обращении к таблице");
// Если имеется хотя бы одна запись - выводим таблицу
if(mysql_num_rows($dmn) > 0)
{
echo "<TABLE cellspacing='0' cellpadding='0' width='100%' bgcolor='#458ea0' border='0'>
<TBODY>
<TR>
<TD>
<TABLE cellspacing='1' cellpadding='2' width='100%' border='0'>
<TBODY>
<TR>
<TD align='center'><FONT size='2'><B>№</B></FONT></TD>
<TD width='19%' align='center'><FONT color='#ffffff' size='2'><B>район</B></FONT></TD>
<TD width='19%' align='center'><FONT color='#ffffff' size='2'><B>улица</B></FONT></TD>
<TD width='8%' align='center'><FONT color='#ffffff' size='2'><B>этаж</B></FONT></TD>
<TD width='20%' align='center'><FONT color='#ffffff' size='2'><B>метраж/м.кв.</B></FONT></TD>
<TD width='15%' align='center'><FONT color='#ffffff' size='2'><B>цена</B></FONT></TD>
<TD width='17%' align='center'><FONT color='#ffffff' size='2'><B>телефон</B></FONT></TD>
<TD width='40%' align='center'><FONT color='#ffffff' size='2'><B>подробно</B></FONT></TD>
<TD width='20%' align='center'><FONT color='#ffffff' size='2'><B>дата</B></FONT></TD>
</TR>";
while($res=mysql_fetch_array($dmn))
{
echo "<TR bgcolor=#FLEFE5>";
echo "<TD ALIGN=CENTER>".$res['id']."</TD>";
echo "<TD ALIGN=CENTER><B><i>".$res['area']."</i></B></TD>";
echo "<TD ALIGN=CENTER>".$res['street']."</TD>";
echo "<TD ALIGN=CENTER>".$res['floor']."</TD>";
echo "<TD ALIGN=CENTER>".$res['metric']."</TD>";
echo "<TD ALIGN=CENTER>".$res['price']." ".$res['val']."</TD>";
echo "<TD ALIGN=CENTER>".$res['phone']."</TD>";
echo "<TD width='30%' ALIGN='CENTER'><a href='#' onclick='win(\"" . htmlentities
($res['detail'], ENT_QUOTES, "cp1251") . "\", \"" . htmlentities($res['street'], ENT_QUOTES, "cp1251") .
"\", \"" . htmlentities($res['phone'], ENT_QUOTES, "cp1251") . "\",\"".htmlentities($res['img'],
ENT_QUOTES, "cp1251")."\")'>открыть</a></TD> ";
echo "<TD ALIGN=CENTER>".$res['date']."</TD>";
echo "</TR>";
}
echo "<TR>
<TD align='center'></TD>
<TD align='center'></TD>
<TD align='center'></TD>
<TD align='center'></TD>
<TD align='center'></TD>
<TD align='center'></TD>
<TD align='center'></TD>
<TD align='center'></TD>
</TR>
</TBODY>
</TABLE>
</TD>
</TR>
</TBODY>
</TABLE> ";
}
// Постраничная навигация
pager($page, $total, $pnumber, $page_link, "&order=$_GET[order]");
// Функция постраничной навигации
// $page - текущая страница, передаётся через GET-параметр page
// $total - общее число позиций в базе данных
// $pnumber - число позиций на одной странице
// $page_link - число ссылок слева и справа от выбранной страницы
function pager($page, $total, $pnumber, $page_link, $parameters)
{
// Вычисляем число страниц в системе
$number = (int)($total/$pnumber);
if((float)($total/$pnumber) - $number != 0) $number++;
// Проверяем есть ли ссылки слева
echo "Страницы:";
if($page - $page_link > 1)
{
echo "<a href=$_SERVER[PHP_SELF]?page=1{$parameters}> <nobr>[1-$pnumber]</nobr>
</a> <em class=currentpage><nobr> ... </nobr> </em> ";
// Есть
for($i = $page - $page_link; $i<$page; $i++)
{
echo " <a href=$_SERVER[PHP_SELF]?page=$i{$parameters}> <nobr>[".(($i - 1)*
$pnumber + 1)."-".$i*$pnumber."]</nobr></a> ";
}
}
else
{
// Нет
for($i = 1; $i<$page; $i++)
{
echo " <a href=$_SERVER[PHP_SELF]?page=$i{$parameters}> <nobr>[".(($i - 1)*
$pnumber + 1)."-".$i*$pnumber."]</nobr></a> ";
}
}
// Проверяем есть ли ссылки справа
if($page + $page_link < $number)
{
// Есть
for($i = $page; $i<=$page + $page_link; $i++)
{
if($page == $i)
echo "<em class=currentpage><nobr> [".(($i - 1)*$pnumber + 1)."-".$i*
$pnumber."] </nobr> </em>";
else
echo " <a href=$_SERVER[PHP_SELF]?page=$i{$parameters}> <nobr>[".(($i - 1)*
$pnumber + 1)."-".$i*$pnumber."]</nobr></a> ";
}
echo "<em class=currentpage><nobr> ... </nobr> </em> <a href=$_SERVER
[PHP_SELF]?page=$number{$parameters}> <nobr>[".(($number - 1)*$pnumber + 1)."-$total]
</nobr></a> ";
}
else
{
// Нет
for($i = $page; $i<=$number; $i++)
{
if($number == $i)
{
if($page == $i)
echo "<em class=currentpage><nobr> [".(($i - 1)*$pnumber + 1)."-$total]
</nobr></em>";
else
echo " <a href=$_SERVER[PHP_SELF]?page=$i{$parameters}>[".(($i - 1)*$pnumber +
1)."-$total]</a> ";
}
else
{
if($page == $i)
echo "<em class=currentpage><nobr> [".(($i - 1)*$pnumber + 1)."-".$i*
$pnumber."] </nobr> </em>";
else
echo " <a href=$_SERVER[PHP_SELF]?page=$i{$parameters}> <nobr>[".(($i - 1)*
$pnumber + 1)."-".$i*$pnumber."]</nobr></a> ";
}
}
}
echo "<br><br>";
}
?>
|
| |
|
|
|
|
|
|
|
для: solomusic
(28.08.2008 в 17:20)
| |
$query = "SELECT COUNT(*) FROM dob";
//...
$query = "SELECT * FROM dob WHERE `type` LIKE 'aa' ORDER BY id desc LIMIT $first, $pnumber ";
|
Запрос, определяющий общее число нужных записей, и запрос, читающий их из таблицы, должны иметь одинаковые критерии отбора. У Вас во втором WHERE `type` LIKE 'aa' стоит, а в первом - нет. | |
|
|
|
|
|
|
|
для: Trianon
(30.08.2008 в 12:59)
| | спасибо... но я нашла ответ через пол часа после того как дала вопрос в форум... но СПАСИБО ВАМ БОЛЬШОЕ! | |
|
|
|
|