|
|
|
| хочу реализовать постраничную навигацию, как на этом форуме.
допустим, чтобы после [17]-[32] следовало ..., а затем посл. 8 новостей.
как это сделать?
include "config_news.php";
$pnumber = 8;
if(isset($_GET['page'])) $page = $_GET['page'];
else $page = 1;
$start = (($page-1)*$pnumber );
$query = "SELECT `news_id`, `title`, `text2`, `text`, date_format(`date`,'%e.%m.%Y %H:%i') as `newdate` FROM news ORDER BY date DESC LIMIT $start, $pnumber";
$prd = mysql_query($query);
if(!$prd) exit(mysql_error());
if(mysql_num_rows($prd) > 0)
{
while($row = mysql_fetch_array($prd))
{
echo "<tr height=12px; width=430px ><td align=left background=bg.gif> <FONT COLOR=#ffffff> ".$row['newdate']."".' '."".stripslashes($row['title'])."</FONT></td></tr>";
echo "<tr width= 430px> <td> ".stripslashes($row['text'])."</td></tr>";
echo '<tr width: 425px><td align=right> <a href="one_news2.php?news_id='.$row['news_id'].'">подробнее</a></td></tr>';
}
echo "</table>";
}
$query = "SELECT COUNT(*) FROM news";
$tot = mysql_query($query);
if(!$tot) exit(mysql_error());
$total = mysql_result($tot,0);
$number = (int)($total/$pnumber);
if((float)($total/$pnumber) - $number != 0) $number++;
for($i = 1; $i <= $number; $i++)
{
if($i != $number)
{
if($page == $i)
{
echo "[".(($i - 1)*$pnumber + 1)."-".$i*$pnumber."] ";
}
else
{
echo "<a href=$_SERVER[PHP_SELF]?page=".$i.">[".
(($i - 1)*$pnumber + 1)."-".
$i*$pnumber."]</a> ";
}
}
else
{
if($page == $i)
{
echo "[".(($i - 1)*$pnumber + 1)."-".($total)."] ";
}
else
{
echo "<a href=$_SERVER[PHP_SELF]?page=".$i.">[".
(($i - 1)*$pnumber + 1)."-".
($total)."]</a> ";
}
}
}
mysql_close($connection);
|
| |
|
|
|
|
|
|
|
для: Medulla
(04.10.2007 в 10:16)
| | Можно поступить следующим образом
<?php
include "config_news.php";
$pnumber = 8;
$page_link = 3
if(empty($_GET['page'])) $page = 1;
else $page = $_GET['page'];
$begin = ($page - 1)*$pnumber;
$query = "SELECT `news_id`,
`title`,
`text2`,
`text`,
date_format(`date`,'%e.%m.%Y %H:%i') as `newdate`
FROM news
ORDER BY date DESC
LIMIT $begin, $pnumber";
$prd = mysql_query($query);
if(!$prd) exit(mysql_error());
if(mysql_num_rows($prd) > 0)
{
while($row = mysql_fetch_array($prd))
{
echo "<tr height=12px; width=430px >
<td align=left background=bg.gif>
<FONT COLOR=#ffffff> ".$row['newdate'].
"".' '."".stripslashes($row['title'])."</FONT></td></tr>";
echo "<tr width= 430px> <td> ".stripslashes($row['text'])."</td></tr>";
echo '<tr width: 425px><td align=right>
<a href="one_news2.php?news_id='.$row['news_id'].'">подробнее</a></td></tr>';
}
echo "</table>";
}
$query = "SELECT COUNT(*) FROM news";
$tot = mysql_query($query);
if(!$tot) exit(mysql_error());
$total = mysql_result($tot,0);
pager($page, $total, $pnumber, $page_link, "");
mysql_close($connection);
function pager($page, $total, $pnumber, $page_link, $parameters)
{
// Вычисляем число страниц в системе
$number = (int)($total/$pnumber);
if((float)($total/$pnumber) - $number != 0) $number++;
// Проверяем есть ли ссылки слева
if($page - $page_link > 1)
{
echo "<a class=menuinfo 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 class=menuinfo 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 class=menuinfo 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 class=menuinfo href=$_SERVER[PHP_SELF]?page=$i{$parameters}> <nobr>[".(($i - 1)*$pnumber + 1)."-".$i*$pnumber."]</nobr></a> ";
}
echo "<em class=currentpage><nobr> ... </nobr> </em> <a class=menuinfo 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 class=menuinfo 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 class=menuinfo href=$_SERVER[PHP_SELF]?page=$i{$parameters}> <nobr>[".(($i - 1)*$pnumber + 1)."-".$i*$pnumber."]</nobr></a> ";
}
}
}
}
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(04.10.2007 в 10:58)
| | спасибо большое) | |
|
|
|