Blätterfunktion wie bei Lima
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
anfnger
ausgabe
count
daten
echt klasse
echt mal
eintrag
ergebnis
hugo
inhaltsverzeichnis
limit
mengen
page
pawort
result
schn behindert aussehen
seitenzahl
tabelle
target
username
-
Moin Moin alle miteinander
ich brauche langsam ne neue Blätterfunktion, ungefair so, wie die bei Lima.
meine ist bis jetzt so, dass alle Seiten aufgelistet werden... aber bei 200 Seiten kann das ganz schön behindert aussehen und wird unübersichtlich. Hier ist mal meine jetzige:
$seite = $_GET["seite"]; //Abfrage auf welcher Seite man ist //Wenn man keine Seite angegeben hat, ist man automatisch auf Seite 1 if(!isset($seite)) { $seite = 1; } //Verbindung zu Datenbank aufbauen $link = mysql_connect("localhost","Username","Passwort") or die ("Keine Verbindung moeglich"); mysql_select_db("Datenbank") or die ("Die Datenbank existiert nicht"); //Einträge pro Seite: Hier 15 pro Seite $eintraege_pro_seite = 15; //Ausrechen welche Spalte man zuerst ausgeben muss: $start = $seite * $eintraege_pro_seite - $eintraege_pro_seite; //Tabelle Abfragen //Tabelle heißt hier einfach: Tabelle $abfrage = "SELECT * FROM Tabelle LIMIT $start, $eintraege_pro_seite"; $ergebnis = mysql_query($abfrage); while($row = mysql_fetch_object($ergebnis)) { echo $row->id."<br>"; // Hier die Ausgabe der Einträge } //Jetzt kommt das "Inhaltsverzeichnis", //sprich dort steht jetzt: Seite: 1 2 3 4 5 //Wieviele Einträge gibt es überhaupt //Wichtig! Hier muss die gleiche Abfrage sein, wie bei der Ausgabe der Daten //also der gleiche Text wie in der Variable $abfrage, bloß das hier das LIMIT fehlt //Sonst funktioniert die Blätterfunktion nicht richtig, //und hier kann nur 1 Feld abgefragt werden, also id $result = mysql_query("SELECT id FROM Tabelle"); $menge = mysql_num_rows($result); //Errechnen wieviele Seiten es geben wird $wieviel_seiten = $menge / $eintraege_pro_seite; //Ausgabe der Seitenlinks: echo "<div align=\"center\">"; echo "<b>Seite:</b> "; //Ausgabe der Links zu den Seiten for($a=0; $a < $wieviel_seiten; $a++) { $b = $a + 1; //Wenn der User sich auf dieser Seite befindet, keinen Link ausgeben if($seite == $b) { echo " <b>$b</b> "; } //Aus dieser Seite ist der User nicht, also einen Link ausgeben else { echo " <a href=\"?seite=$b\">$b</a> "; } } echo "</div>";
wie man das mit der ersten und der letzten Seite hinbekommt weiß ich ja noch, aber ich weiß nicht, wie man es hinbekommt, dass nur maximal 5 oder 10 Seiten oder sowas angezeigt werden, und dass det dann immer weiterspringt... also so:
<< < 1|2|3|4|5|6 > >>
<< < 2|3|4|5|6|7 > >>
<< < 3|4|5|6|7|8 > >>
und so weiter... kann mir da jemand meine Blätterfunktion so umändern?
und bitte sagt nicht, ich solle doch googeln... hab ich schon unddas nen ganzen lieben langen Tag lang, aber die machen das so extrem kompliziert, dass ich da nimmer durchblicke, weil ich ja noch PHP Anfänger bin...
Wäre echt super nett von euch... -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Ich will mal den Code posten, damit die anderen auch was davon haben (Damit keine dummen Fragen kommen. Ich habe ihm über ICQ geholfen):
$result = mysql_query("SELECT COUNT(*) AS anz FROM uploadbilder"); $row = mysql_fetch_object($result); $menge=$row->anz; $seiten_limit=9; //Anzahl der Seitenzahlen, die da stehen sollen //Errechnen wieviele Seiten es geben wird $wieviel_seiten = ceil($menge / $eintraege_pro_seite); //Ausgabe der Seitenlinks: echo "<div align=\"center\">"; echo "<b>Seiten: ($wieviel_seiten)</b> "; if($seite>1) { $prev=$seite-1; echo "<a href=\"".$_SERVER['PHP_SELF']."?seite=1\"><<</a> <a href=\"".$_SERVER['PHP_SELF']."?seite=".$prev."\"><</a>"; } if($seite+$seiten_limit-1<$wieviel_seiten) { $count = $seite; $ende = $seite+$seiten_limit-1; } elseif($seite+$seiten_limit-1>=$wieviel_seiten && $seiten_limit<=$wieviel_seiten) { $count = $wieviel_seiten-$seiten_limit+1; $ende = $wieviel_seiten; } elseif($seiten_limit>$wieviel_seiten) { $count = 1; $ende = $wieviel_seiten; } while($count <= $ende) { if($count != $seite) { echo " <a href=\"".$_SERVER['PHP_SELF']."?seite=".$count."\">".$count."</a>"; } else { echo " <b>".$count."</b>"; } $count++; } if($seite<$wieviel_seiten) { $next=$seite+1; echo " <a href=\"".$_SERVER['PHP_SELF']."?seite=".$next."\">></a> <a href=\"".$_SERVER['PHP_SELF']."?seite=".$wieviel_seiten."\">>></a>"; } echo "</div>";
Wenns Fragen zum Code gibt, schreibt ne PN an mich.
Beitrag geändert: 1.11.2006 15:30:46 von hugo1990 -
wie bei lima?
function show_pages($max,$page,$perpage,$url = '') { global $PHP_SELF; $target = ($url?$url:$PHP_SELF); if(!strpos($target,'?')) $target .= '?'; $n = floor($max/$perpage); $p = array(); if($page > 0) { $p[] = '<a href="'.$target.'">«</a>'; $p[] = '<a href="'.$target.'&page='.($page-1).'"><</a>'; } if($n) for($i=($page-5>=0?$page-5:0);$i<=($n>$page+5?$page+5:$n);$i++) { $p[] = ($page==$i?($i+1):'<a href="'.$target.'&page='.$i.'">'.($i+1).'</a>'); } if($page < $n) { $p[] = '<a href="'.$target.'&page='.($page+1).'">></a>'; $p[] = '<a href="'.$target.'&page='.$n.'">»</a>'; } $p = join(', ',$p); $p = str_replace('?&','?',$p); return $p; }
-
boah is ja geil ^^
jetzt fühle ich mich aber geehrt. ^^ der Lord hat in einer meiner Themen was geschrieben.... das is echt mal cool. *g*
Jedenfalls danke euch beiden, besonders Hugo, weil er mir direkt geholfen hat, echt klasse... danke ^^ -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage