FisyX Geschrieben 9. Juni 2004 Teilen Geschrieben 9. Juni 2004 Hallo. Wie kann ich nach einer bestimmten ausgabe von mysql datenwerten automatisch eine neue seite beginnen und am ende dieser seite autom. einen link zur nächsten platzieren... wie in den meisten gästebüchern ??? Danke schonmal im Vorraus für eure hilfe :floet: Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
MightyCats Geschrieben 9. Juni 2004 Teilen Geschrieben 9. Juni 2004 Hmm ich denke du meinst das er praktisch pro Seite nur 10 Gästebucheinträge anzeigen soll und das man am ende durch die jeweiligen seiten klicken kann? Ich hab es einfach mit einem übergabe Parameter page=x gelöst. sprich mysql soll einfach mittels limit (x*10)-10,10 pro seite nur 10 datensätze zurück liefern. (ergibt für seite 1 -> limit 0,10, also die ersten 10 datensätze für seite 2 -> limit 10,10, also die zweiten 10 datensätze) Und am ende einfach gesamtzahl datensätze/10 seiten auswahlmöglichkeiten anzeigen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Gast Saesh Geschrieben 9. Juni 2004 Teilen Geschrieben 9. Juni 2004 Hier ein Tutorial, dass sehr gut zu verstehen ist: > http://www.php-center.de/artikel/blaettern.php3 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
geloescht_JesterDay Geschrieben 9. Juni 2004 Teilen Geschrieben 9. Juni 2004 Wie kann ich nach einer bestimmten ausgabe von mysql datenwerten automatisch eine neue seite beginnen und am ende dieser seite autom. einen link zur nächsten platzieren... wie in den meisten gästebüchern ??? also automatisch geht schonmal garnix, zumindest für den Programmierer Hier mal ne Lösung von mir für dieses Problem: /* Anzahl Zeilen der Tabelle, die pro Seite angezigt werden*/ $MaxLines = 5; $CurPageNr = 1; if (isset($_POST["submit"])) $CurPageNr = $_POST["NewPage"]; $result = MYSQL_QUERY($Query, $db); if ($result) { /* wieviele Datensätze */ $menge = mysql_num_rows($result); /* maximale Seitenanzahl bestimmen */ $MaxNrPage = floor($menge/$MaxLines) + 1; echo "<br><small>Insgesamt ".$MaxNrPage." Seiten | Aktuelle Seite = ".$CurPageNr."</small>"; /* ab welchen Datensatz soll angezeigt werden */ $StartIndex = ($CurPageNr* $MaxLines) - $MaxLines; /* bis zu welchem Satz */ $EndIndex = ($CurPageNr* $MaxLines) -1; if ($EndIndex > $menge-1) { $EndIndex = $menge-1; } # ********************************************************** # Ergebnis ausgeben for ($i=$StartIndex;$i<=$EndIndex;$i++) { echo mysql_result($result,$i,0); } # ************************* First ************************** if ($CurPageNr != 1) { echo "<small><a href=\"".$_SERVER['PHP_SELF']."?NewPage=1&SB=".$Suchbegriff."&K=".$Kriterium."&S=".$Sort."\">First</a> | "; } else { echo "<small><s>First</s> | "; } # ************************* Previous ************************ if ($CurPageNr==1) { echo "<s>Previous</s> | "; } else { echo "<a href=\"".$_SERVER['PHP_SELF']."?NewPage="; echo ($CurPageNr-1); echo "&SB=".$Suchbegriff."&K=".$Kriterium."&S=".$Sort."\">Previous</a> | "; } # ************************* Next **************************** if ($CurPageNr==$MaxNrPage) { echo "<s>Next</s> | "; } else { echo "<a href=\"".$_SERVER['PHP_SELF']."?NewPage="; echo ($CurPageNr+1); echo "&SB=".$Suchbegriff."&K=".$Kriterium."&S=".$Sort."\">Next</a> | "; } # ************************* Last **************************** if ($CurPageNr != $MaxNrPage) { echo "<a href=\"".$_SERVER['PHP_SELF']."?NewPage=".$MaxNrPage."&SB=".$Suchbegriff."&K=".$Kriterium."&S=".$Sort."\">Last</a></small>"; } else { echo "<s>Last</s></small>"; } echo "<input type=\"hidden\" name=\"CurPage\" value=\"".$_POST["PageID"]."\">"; [/php] mit mysql_result kannst du gezielt einen Datensatz aus dem Ergebnis auswählen. Die Datensätze gezielt abfragen ("SELECT * FROM tab WHERE ID >=5 AND ID < 15") ginge auch, allerdings fehlt dir dann die Maximale Anzahl Seiten und du kannst somit auch nicht bis zum Ende springen, es sei denn du bestimmst es einmalig und führst es dann mit. Das ist nicht das komplette skript von mir (also daraus zusammen kopiert), hoffe aber es ist klar wie ich da vorgehe... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
computercrustie Geschrieben 10. Juni 2004 Teilen Geschrieben 10. Juni 2004 Oder so: $lines = 10; $page = isset($_REQUEST['page']) ? $_REQUEST['page'] : 0; $sql = "SELECT CEIL( COUNT(*) / $lines ), COUNT(*) FROM guestbook"; if (!($res = mysql_query($sql))) return false; list($pages,$entrees)=mysql_fetch_row($res); mysql_free_result($res); $sql = "SELECT name, mail, text, DATEFORMAT('%d.%m.%y',date) FROM guestbook ORDER BY date DESC LIMIT ".($page*$lines).", $lines"; if (!($res = mysql_query($sql))) return false; while( list($name,$mail,$text,$date) = mysql_fetch_row($res)) echo ($mail?"<a href=\"mailto:$mail\">":"").$name.($mail?"</a>":"")."schrieb am $date:<br/>\n".htmlentities($text); mysql_free_result($res); for($a=0;$a<$pages;$a++) echo ($a!=$page?"<a href='guestbook.php?page=$a'>[".($a+1)."]</a>":"(".($a+1).")"); [/PHP] Der Unterschied zum obigen Beispiel ist der, dass hier nur genau die Datensätze ausgelesen werden, die auch benötigt werden. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.