screamfine Geschrieben 11. März 2003 Geschrieben 11. März 2003 Hm... ich mache gerade eine Art Newsarchiv und will da die Funktion haben (wie man's öfters sieht), dass man am unteren Ende der Page diese Links abgezeigt bekommt: [seite 2] [3] [4] .... (also die News sollen pro Seite quasi auf 5 beschränkt sein) Aber leider kapier ich nicht, wie ich das anstellen soll? Also meine mysql-tabelle heisst übrigens: "tbl_news". Gibt es eine Standardfunktion? Kann mir jemand helfen? Zitieren
Spike Geschrieben 11. März 2003 Geschrieben 11. März 2003 Hi, schau mal in dein SQL Handbuch Hab den Code momentan nicht 100% im Kopf, müsstest du nachschauen. Lass dir für die erste Seite z.B. die ersten 5 Datensätze ausgeben, für Seite 2 dann die Datensätze 5-10 usw usf. Oder pack alles in ein Array + IDs und gib auf den Seiten immer die entsprechenden IDs aus (Seite 2 IDs 5-10 usw usf). Zitieren
screamfine Geschrieben 12. März 2003 Autor Geschrieben 12. März 2003 Sorry, ich blick das nicht Es will einfach net so wie ich will ... Zitieren
kathi008 Geschrieben 12. März 2003 Geschrieben 12. März 2003 hi, 100% kann ich dir auch nicht sagen, wie du es mit den Seiten machst, aber die SQL abfrage wäre: "SELECT deine Felder FROM deine Tabelle WHERE deine Bedingung LIMIT $a,5" Das heist die Variable $a setzt du erstmal auf 0, dann in einer Schleife jeweils um 5 hochzählen. So werden immer nur 5 Datensätze angezeigt. Zum Verstehen: ...LIMIT $anfang, $länge Zitieren
geloescht_JesterDay Geschrieben 12. März 2003 Geschrieben 12. März 2003 Wenn du PHP nutzt kannst du deine Abfrage nur teilweise ausgeben lassen, hier mal ein Bsp wie ich es seitenweise mit <First><Previous><Next><Last> gemacht habe... $menge = mysql_num_rows($result); $MaxNrPage = floor($menge/$MaxLines) + 1; echo "<br><small>Insgesamt ".$MaxNrPage." Seiten |Aktuelle Seite = ".$CurPageNr."</small>"; # $menge ist die Menge der zurückgelieferten Datensätze. # $MaxLines ist die maximale anzahl von Zeilen pro Seite. # Aus beiden errechne ich die maximal Anzahl Seiten $StartIndex = ($CurPageNr* $MaxLines) - $MaxLines; $EndIndex = ($CurPageNr* $MaxLines) -1; if ($EndIndex > $menge-1) { $EndIndex = $menge-1; } # $CurPageNr ist die Nummer der aktuellen Seite (1, 2, 3 etc.) # hier wird der Start- bzw. der Endindex für die # anzuzeigenden Datensätze bestimmt. for ($i=$StartIndex;$i<=$EndIndex;$i++) { [...] echo "<td>".mysql_result($result,$i,1)."</td>\n"; [...] } # Die Datensätze werden in einer Table ausgegeben. # Mit mysql_result kann ein bestimmter Datensatz ($i) # angezeigt werden. (siehe SelfPHP z.B.) # hier ein Beispiel für die Weiterschaltung # ************************* 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> | "; } # der folgende Code steht am Anfang des Dokuments <?php $CurPageNr = 1; $QStr = $_SERVER["QUERY_STRING"]; if (!$QStr == "") { /* Falls Querystring vorhanden wurde Seite blättern gewählt Die einzelnen Übergaben werden ausgelesen und ein Post simuliert */ $tmpAr = explode("&", $QStr); $_POST["submit"] = "submit"; for ($i=0;$i<count($tmpAr);$i++) { $QStrAr = explode("=", $tmpAr[$i]); if ($QStrAr[0] == "NewPage") { $CurPageNr = $QStrAr[1]; } if ($QStrAr[0] == "SB") { $_POST["Suchbegriff"] = $QStrAr[1]; } if ($QStrAr[0] == "K") { $_POST["Kriterium"] = $QStrAr[1]; } if ($QStrAr[0] == "S") { $_POST["Sort"] = $QStrAr[1]; } } } echo "<input Type=\"hidden\" name=\"PageID\" Value=\"".$CurPageNr."\">"; ?> # Damit werden die übergebenen Daten (von Next z.B.) # geparst und über $_POST["submit"] = "submit"; wird # die Variable submit gesetzt, was später abgefragt wird. # später im Dokument steht dann... <?php if (isset($_POST["submit"])) { #dort wird dann die Abfrage erzeugt (aus den Daten von $_POST) # und die Tabelle angezeigt, siehe Anfang Wenn du das anpasst sollte es auch bei dir mit Seite1, 2, 3, 4... funktionieren. Abhängig von $CurPageNr zeigst du Links zu $CurPageNr+1 bis $CurPageNr+4 an o.ä. Zitieren
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.