Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> czy aby nie skomplikowane?
zulus
post
Post #1





Grupa: Zarejestrowani
Postów: 225
Pomógł: 18
Dołączył: 30.06.2003
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


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]
Go to the top of the page
+Quote Post
kwiateek
post
Post #2





Grupa: Zarejestrowani
Postów: 223
Pomógł: 0
Dołączył: 13.01.2003
Skąd: 3rd ball of mud behind a big ball of burning gas

Ostrzeżenie: (0%)
-----


Gotowe rozwiązania:
http://forum.php.pl/viewtopic.php?t=681&hi...highlight=limit
http://forum.php.pl/viewtopic.php?t=814&hi...highlight=limit

Pozdrawiam.


--------------------
It's Time to Join the PLD Linux Generation!
<? while (!$success) { $try++; } ?>
Go to the top of the page
+Quote Post
zulus
post
Post #3





Grupa: Zarejestrowani
Postów: 225
Pomógł: 18
Dołączył: 30.06.2003
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 11:43