Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: czy aby nie skomplikowane?
Forum PHP.pl > Forum > Gotowe rozwiązania
zulus
Mam taki sobie skrypt wypisujący linki do kolejnych stron podobnie jak w phpbb który działa, ale wydaje mi się zbyt skomplikowany i chyba za dużo instrukcji if(). Czy da się to jakoś uprościć:?:
[php:1:1d8c2c3510]<?php
$strony = 100; //ilość wpisów przez 15, przykładowo 100
$byl_page = false;
if(!$page || $page<=0 || $page > $strony) {
$page = 1;
}
$link = 'licz.php';

for($i=1; $i <= 3; $i++) {
if($i == $page) {
$i++;
echo "<b>$page</b> ";
$byl_page = true;
if($page == 1 && $i <= $strony) {
echo "<a href="$link?page=$i">$i</a> ";
$i++;
}
if($i<=$strony) {
echo "<a href="$link?page=$i">$i</a> ";
$i++;
break;
}
}
if($i<=$strony)
echo "<a href="$link?page=$i">$i</a> ";

if($i >= $strony)
return;
}

if($byl_page == false) {
if($i <= ($strony - 3) && ($page - 1) > $i) {
echo '<b>... </b>';
for($i = ($page-1); $i <= ($page+1); $i++) {
$a = $i - 1;
if($page==$strony && $i == ($page - 1))
echo "<a href="$link?page=$a">$a</a> ";
if($i == $page) {
$i++;
echo "<b>$page</b> ";
$byl_page = true;
if($i<=$strony) {
echo "<a href="$link?page=$i">$i</a> ";
$i++;
break;
}
}
if($i<=$strony)
echo "<a href="$link?page=$i">$i</a> ";

if($i >= $strony)
return;
}
} else {
for($i; $i <= ($page + 1); $i++) {
if($i == $page) {
$i++;
echo "<b>$page</b> ";
$byl_page = true;
if($i<=$strony) {
echo "<a href="$link?page=$i">$i</a> ";
$i++;
break;
}
}
if($i<=$strony)
echo "<a href="$link?page=$i">$i</a> ";

if($i >= $strony)
return;
}
}

}

if($i <= ($strony - 3)) {
echo '<b>... </b>';
for($i = ($strony-2); $i <= $strony; $i++) {
$a = $i - 1;
if($page==$strony && $i == ($page - 1))
echo "<a href="$link?page=$a">$a</a> ";
if($i == $page) {
$i++;
echo "<b>$page</b> ";
$byl_page = true;
if($i<=$strony) {
echo "<a href="$link?page=$i">$i</a> ";
$i++;
break;
}
}
if($i<=$strony)
echo "<a href="$link?page=$i">$i</a> ";

if($i >= $strony)
return;
}
} else {
for($i; $i <= $strony; $i++) {
if($i == $page) {
$i++;
echo "<b>$page</b> ";
$byl_page = true;
if($i<=$strony) {
echo "<a href="$link?page=$i">$i</a> ";
$i++;
break;
}
}
if($i<=$strony)
echo "<a href="$link?page=$i">$i</a> ";

if($i >= $strony)
return;
}
}
?>[/php:1:1d8c2c3510]
zulus
Sorry ale chyba nie czytałeś mojego kodu. On zadziała po podaniu ilości stron wszystkich i wyświeta kilka pierwszych, przed i po aktualnym linku i trzy ostatnie, został przetestowany i działa prawidłowo sprawdzałem wpisując różne ilości stron od 1 do 10 i dalej testując przez klikanie na kolejne linki.

Jak chcesz to skopiuj kod i uruchom a napewno zadziała.

P.S.
Nie uwzględniłem register_globals
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.