Veröffentlicht 11. März 200322 j 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?
11. März 200322 j 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).
12. März 200322 j 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
12. März 200322 j 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.ä.
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.