| |
|
|
| | Уважаемые, поможите... :-)
Взяв за основу скрипт "Блока новостей" от авторов данного проекта, адаптировал его под свои цели, в т.ч. применил псевдостатические ссылки. Вроде всё нормально, но вот с модулем постраничной навигации есть проблемка. А именно вот в чём. Скажем жмакая по ссылке [5-8], перехожу, как и планируется на страницу news2.htm а возвращаясь на [1-4] - на страницу news1.htm... В итоге имею на сайте две совершенно одинаковых страницы: news.htm и news1.htm
Вот фрагмент кода:
// Постраничная навигация
if(isset($_GET['id_news']))
{
}
else
{
$page_link = 4;
$query = "SELECT COUNT(*) FROM news WHERE hide='show' AND putdate <= NOW()";
$tot = mysql_query($query);
$total = mysql_result($tot,0);
$number = (int)($total/$all_number_news);
if((float)($total/$all_number_news) - $number != 0) $number++;
echo "<br><table><tr><td><p>";
// Проверяем есть ли ссылки слева
if($page - $page_link > 1)
{
echo "<a href=news.htm>[1-$all_number_news]</a> ... ";
// Есть
for($i = $page - $page_link; $i<$page; $i++)
{
echo " <a href=news".$i.".htm>[".(($i - 1)*$all_number_news + 1)."-".$i*$all_number_news."]</a> ";
}
}
else
{
// Нет
for($i = 1; $i<$page; $i++)
{
echo " <a href=news".$i.".htm>[".(($i - 1)*$all_number_news + 1)."-".$i*$all_number_news."]</a> ";
}
}
// Проверяем есть ли ссылки справа
if($page + $page_link < $number)
{
// Есть
for($i = $page; $i<=$page + $page_link; $i++)
{
if($page == $i)
echo " [".(($i - 1)*$all_number_news + 1)."-".$i*$all_number_news."] ";
else
echo " <a href=news".$i.".htm>[".(($i - 1)*$all_number_news + 1)."-".$i*$all_number_news."]</a> ";
}
echo " ... <a href=news".$number.".htm>[".(($number - 1)*$all_number_news + 1)."-$total]</a> ";
}
else
{
// Нет
for($i = $page; $i<=$number; $i++)
{
if($number == $i)
{
if($page == $i)
echo " [".(($i - 1)*$all_number_news + 1)."-$total] ";
else
echo " <a href=news".$i.".htm>[".(($i - 1)*$all_number_news + 1)."-$total]</a> ";
}
else
{
if($page == $i)
echo " [".(($i - 1)*$all_number_news + 1)."-".$i*$all_number_news."] ";
else
echo " <a href=news".$i.".htm>[".(($i - 1)*$all_number_news + 1)."-".$i*$all_number_news."]</a> ";
}
}
}
|
Вобщем, ребят, помогите сделать так, что бы при переходе на первую страницу (ну или на крайнюю левую ссылку) я попадал ни на news1.htm, а на news.htm...
Сорри за сумбурное изложение, но я уже практически в трансе... | |
| |
|
|
| |
|
|
| |
для: Soloway
(17.04.2008 в 22:24)
| | | У меня на сайте так.
<?PHP
$page=$_GET['page'];
$phpself="themes";
if ((!isset($page)))
{
$page=1;
$rows=mysql_num_rows($result2); //Всего строк
$inpage="10"; // На одной странице выводить 10 записей
$vsego_page=$rows/$inpage; // Всего страниц
$do=1*$inpage; // До
$ot=$do-$inpage; // От
$thispagedo=1*$inpage;
$thispageot=$thispagedo-$inpage;
$thispageecho="<span style=\"color: #66B0F5;\">[ ".$thispageot."-".$thispagedo." ]</span>";
if ($vsego_page>1)
{
$rdo=(1+1)*$inpage;
$rot=$rdo-$inpage;
$right=2;
$rightecho=" [ <a href=\"".$phpself.".php?session=".$_GET['session']."&page=".$right."&search=".$search."\">".$rot."-".$rdo."</a> ]";
if ($vsego_page>$right)
{
$rdo2=($right+1)*$inpage;
$rot2=$rdo2-$inpage;
$right2=3;
$right2echo="[ <a href=\"".$phpself.".php?session=".$_GET['session']."&page=".$right2."&search=".$search."\">".$rot2."-".$rdo2."</a> ]";
}
$vsego_pagedo=$vsego_page*$inpage;
$vsego_pageot=$vsego_pagedo-$inpage;
$vsego_page=ceil($vsego_page);
$vsegoecho=" ...[ <a href=\"".$phpself.".php?session=".$_GET['session']."&page=".$vsego_page."&search=".$search."\">".$vsego_pageot."-".$vsego_pagedo."</a> ]";
}
$ot="0";
$do="10";
}
else
{
if (!empty($page) && ($page>0))
{
$rows=mysql_num_rows($result2); //Всего строк
$inpage="10"; // На одной странице выводить 10 записей
$vsego_page=$rows/$inpage; // Всего страниц
$do=$page*$inpage; // До
$ot=$do-$inpage; // От
$thispagedo=$page*$inpage;
$thispageot=$thispagedo-$inpage;
$thispageecho="<span style=\"color: #66B0F5;\">[ ".$thispageot."-".$thispagedo." ]</span>";
$onepagedo=$inpage;
$onepageot=0;
$onepageecho="[ <a href=\"".$phpself.".php?session=".$_GET['session']."&page=1&search=".$search."\">".$onepageot."-".$onepagedo."</a> ]...";
if ($thispagedo==$onepagedo)
{
$onepageecho="";
}
$vsego_pagedo=$vsego_page*$inpage;
$vsego_pageot=$vsego_pagedo-$inpage;
$vsego_page=ceil($vsego_page);
$vsegoecho=" ...[ <a href=\"".$phpself.".php?session=".$_GET['session']."&page=".$vsego_page."&search=".$search."\">".$vsego_pageot."-".$vsego_pagedo."</a> ]";
if (($thispagedo==$vsego_pagedo) || ($vsego_page==$page))
{
$vsegoecho="";
}
if ($vsego_page>$page)
{
$rdo=($page+1)*$inpage;
$rot=$rdo-$inpage;
$right=$page+1;
$rightecho=" [ <a href=\"".$phpself.".php?session=".$_GET['session']."&page=".$right."&search=".$search."\">".$rot."-".$rdo."</a> ]";
if ($rdo==$onepagedo)
{
$onepageecho="";
}
if ($right==$vsego_page)
{
$rightecho="";
}
if ($vsego_page>$right)
{
$rdo2=($right+1)*$inpage;
$rot2=$rdo2-$inpage;
$right2=$right+1;
$right2echo="[ <a href=\"".$phpself.".php?session=".$_GET['session']."&page=".$right2."&search=".$search."\">".$rot2."-".$rdo2."</a> ]";
if ($rdo2==$onepagedo)
{
$onepageecho="";
}
if ($right2==$vsego_page)
{
$right2echo="";
}
}
}
if (($page==1) || ($page<1))
{
}
else
{
$ldo=($page-1)*$inpage;
$lot=$ldo-$inpage;
$left=$page-1;
$leftecho="[ <a href=\"".$phpself.".php?session=".$_GET['session']."&page=".$left."&search=".$search."\">".$lot."-".$ldo."</a> ]";
if ($ldo==$onepagedo)
{
$onepageecho="";
}
if ($left==1)
{
}
else
{
$ldo2=($left-1)*$inpage;
$lot2=$ldo2-$inpage;
$left2=$left-1;
$leftecho2="[ <a href=\"".$phpself.".php?session=".$_GET['session']."&page=".$left2."&search=".$search."\">".$lot2."-".$ldo2."</a> ]";
if ($ldo2==$onepagedo)
{
$onepageecho="";
}
}
}
}
else
{
$page=1;
$rows=mysql_num_rows($result2); //Всего строк
$inpage="10"; // На одной странице выводить 10 записей
$vsego_page=$rows/$inpage; // Всего страниц
$do=1*$inpage; // До
$ot=$do-$inpage; // От
$thispagedo=1*$inpage;
$thispageot=$thispagedo-$inpage;
$thispageecho="<span style=\"color: #66B0F5;\">[ ".$thispageot."-".$thispagedo." ]</span>";
if ($vsego_page>1)
{
$rdo=(1+1)*$inpage;
$rot=$rdo-$inpage;
$right=2;
$rightecho=" [ <a href=\"".$phpself.".php?session=".$_GET['session']."&page=".$right."&search=".$search."\">".$rot."-".$rdo."</a> ]";
if ($vsego_page>$right)
{
$rdo2=($right+1)*$inpage;
$rot2=$rdo2-$inpage;
$right2=3;
$right2echo="[ <a href=\"".$phpself.".php?session=".$_GET['session']."&page=".$right2."&search=".$search."\">".$rot2."-".$rdo2."</a> ]";
}
$vsego_pagedo=$vsego_page*$inpage;
$vsego_pageot=$vsego_pagedo-$inpage;
$vsego_page=ceil($vsego_page);
$vsegoecho=" ...[ <a href=\"".$phpself.".php?session=".$_GET['session']."&page=".$vsego_page."&search=".$search."\">".$vsego_pageot."-".$vsego_pagedo."</a> ]";
$ot="0";
$do="10";
}
}
}
if((!empty($_POST['search'])) || (!empty($_GET['search'])))
{
$result = mysql_query ("SELECT * FROM themes WHERE MATCH(theme) AGAINST ('$search' IN BOOLEAN MODE) ORDER BY newmessages DESC LIMIT $ot,$inpage");
}
else
{
$result = mysql_query("SELECT * FROM `themes` ORDER BY newmessages DESC LIMIT $ot,$inpage");
}
echo"<div class=\"pager\">".$onepageecho." ".$leftecho2." ".$leftecho." ".$thispageecho." ".$rightecho." ".$right2echo." ".$vsegoecho."</div>";
?>
|
| |
| |
|
|
| |
|
|
| |
для: Даниэль
(17.04.2008 в 22:35)
| | | Даниэль, спасибо.
По ограниченности своей я ещё не вник в Ваш код, но обязательно его прочту... Попытаюсь расшифровать... Просто не совсем я программист... :-)
А проблему решил заменив вот этот кусок:
for($i = 1; $i<$page; $i++)
{
echo " <a href=news".$i.".htm>[".(($i - 1)*$all_number_news + 1)."-".$i*$all_number_news."]</a> ";
}
}
|
На такой:
for($i = 1; $i<$page; $i++)
{
if($i == 1)
echo "<a href=news.htm>[1-$all_number_news]</a> ";
else
echo " <a href=news".$i.".htm>[".(($i - 1)*$all_number_news + 1)."-".$i*$all_number_news."]</a> ";
}
}
|
Как ни странно даже заработало как я хотел.
Я прям на себя удивляюсь... :-)
Спасибо. | |
| |
|
|