[PHP] "Blätterfunktion"
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
ansicht
anzahl
beitrag
blabla
eintrag
fehler
fragen
fnf
hilfe
klappe
kleine nderung
kochbuch
limit
message
order
page
section
variable
versuchen
-
Hey,
ich hab mal wieder ne Frage :)
Ich hol mir die Nachrichten aus der Datenbank und zähle sie (= $gesamt).
Die Variable $pmperpage enthält die Anzahl der Nachrichten/Beiträge, die auf einer Seite dargestellt werden sollen.
Dann ist $wievielepage die Anzahl der Seiten, die ich habe.
$pnc_ergebnis = dbquery("SELECT * FROM ".$db_prefix."messages ORDER BY message_id DESC"); $gesamt = dbrows($pnc_ergebnis); $wievielepages = $gesamt / $pmperpage; $wievielepages = ceil($wievielepages);
Und bis jetzt hab ich dann so weitergemacht:
function electpage() { global $wievielepages; echo "Seiten: "; for ($i=1; $i <= $wievielepages; $i++) { echo "<a href=\"blub.php?pn_page=".$i."\">".$i."</a>, "; } }
Da kommt dann sowas raus:
Seite: 1, 2, 3, 4, 5,
Ich will aber, dass das anders aussieht.
Nämlich so wie bei Lima-City:
«, <, 1, 2, 3, 4, 5, 6, 7, 8, >, »
oder so:
http://peecee.dk/resize.php?id=34960
Weiß da wer was? ;)
Beitrag geaendert: 18.3.2007 18:38:02 von sesch -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Bevor ich dir hier lang und breit etwas erkläre und dir fertigen Code liefere, gebe ich dir einfach folgenden Link als Hilfe.
http://php-einfach.de/tuts_mysql_blaetterfunktion.php
Dort steht eigentlich alles erklärt und so wie ich das sehe, solltest du deinen Code nochmal überarbeiten, da du z.B. gar nicht mit LIMIT arbeitest. Du lädst quasi alle Einträge, auch wenn du eigentlich nur z.b. fünf brauchst. -
Naja, den gleichen Code hatte ich ja schon vorher. Was ich suche ist, dass zB:
Seite 1 von 9: 1, 2, 3, 4, 5, 6, 7, 8, 9,
zu
<< < 5, 6, 7, 8, 9 > >>
wird.
Mein Code sieht zur Zeit so aus:
function electpage($page, $wievielepages, $section) { global $wievielepages; if ($wievielepages > "1") { echo "<br />Seite ".$page." von ".$wievielepages.": "; for ($i=1; $i <= $wievielepages; $i++) { if($page == $i) { echo $i.", "; } else { echo "<a href=\"login_admin.php?section=".$section."&page=".$i."\">".$i."</a>, "; } } echo "<br />"; } }
Beitrag geaendert: 3.4.2007 20:02:40 von sesch -
<?php function electpage($page, $wievielepages, $section) { global $wievielepages; if ($wievielepages > '1') { echo '<br />Seite '.$page.' von '.$wievielepages.': '; //Ich versuche mal, etwas einzubauen: if($page - 2 <= 0) $start = 1; else $start = $page - 2; if($page + 2 >= $wievielepages) $ende = $wievielepages; else $ende = $page + 2; //Habs nicht probiert, aber könnte klappen for ($i=$start; $i <= $ende; $i++) //hier noch eine kleine änderung { if($page == $i) { echo $i.', '; } else { echo '<a href=\'login_admin.php?section='.$section.'&page='.$i.'\'>'.$i.'</a>, '; } } echo '<br />'; } }
EDIT: Musst ein Fehler korrigieren
Beitrag geaendert: 3.4.2007 20:59:49 von nigolaz -
ehrlich gesagt ich seh das problem ned.
Weil ähm ja << is blabla.php?p=1 bzw blabla.php
< ist: if(isset($_GET['p']) && $_GET['p'] > 1) blabla.php?p='.$_GET['p']-1.'
> ist: if(isset($_GET['p']) && $_GET['p'] < MAX) blabla.php?p='.$_GET['p']+1.'
else blabla.php?p=2
>> ist: blabla.php?p=MAX
ende -
Bevor ich dir hier lang und breit etwas erkläre und dir fertigen Code liefere, gebe ich dir einfach folgenden Link als Hilfe.
http://php-einfach.de/tuts_mysql_blaetterfunktion.php
Dort steht eigentlich alles erklärt und so wie ich das sehe, solltest du deinen Code nochmal überarbeiten, da du z.B. gar nicht mit LIMIT arbeitest. Du lädst quasi alle Einträge, auch wenn du eigentlich nur z.b. fünf brauchst.
Es gibt auch noch meiner Ansicht nach bessere Bschreibung unter http://www.selfphp.de/kochbuch/kochbuch.php?code=32
Dort ist, glaub ich, auch genau dein Problem geschildert. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage