Dave: Problem mit Ausgabebegrenzung

Hi,

bei meinem Forum habe ich gerade versucht, die Anzahl der Ausgegebenen Beiträge pro Seite auf 10 zu setzen, und, falls vorhanden, einen link auf dei nächsten / vorherigen 10 Beiträge zu setzen. das sieht (vereinfacht) so aus:

/* Zuvor definierte Variable $x = Anzahl der Beiträge gesamt.
 $start wird beim Aufruf des Links auf die nächste / vorherige Seite mit $start = $start + 1 (-1); verändert.
 $ende = $start + 10;

desweiteren eine if-Anweisung, die, sofern $go gesetzt ist, bei "next" (prev) $start (und $ende) um 10 erhöht (erniedrigt). */

if($x > $ende) {
 for($start < $ende; $start++;) {
  // hier Ausgabe eines Beitrags
 }
} elseif($x <= $ende) {
 for($start < $x; $start++;) {
  // hier Ausgabe der postings wenn sie weniger als 10 sind...
 }
}

if($x > (<) $ende ($start)) {
 // echo: link, der $go auf next (prev) setzt
}

So in etwa. Bei der Ausgabe schreibt er mir aber unendlich viele Tabellenzellen. Ohne Inhalt. Bis man auf Stop drückt. Wieso?

Das Script ist jetzt nicht ganz ausführlich, kann ich bei fragen noch nachholen.

Schöne Grüsse,
Dave

  1. Hallo Dave,

    for($start < $ende; $start++;) {

    der erste Parameter einer for-Schleife wird beim Aufrufen der Schleife ausgeführt, der zweite bei jedem Durchlauf auf true geprüft und der dritte einfach nur ausgeführt. Das bedeutet bei deiner Schleife, das bei jedem durchlauf $start um eins erhöht wird (was ja in der Regel true ergibt) und die Schleife mangels Abbruchbedingung unendlich (bzw. bis zum Timeout) ausgeführt wird. Du musst den Strichpunkt hinter $start++ ganz am Anfang in der Klammer setzen, dann sollte es funktionieren.

    [...]
     for($start < $x; $start++;) {

    hier genauso

    Grüße aus Nürnberg
    Tobias

    1. *räusper*...

      Vielen Dank... geht..
      jetzt funzt das aber nicht, dass, wenn der Geamtwert (z.B. 12) minus den Startwert (z.B. 10 = 2) < 10 ist, nur noch die restlichen Beiträge ausgegeben werden... dann macht er mir immer noch 10 Zellen... sollen aber nur 2 sein... Ich dachte, das krieg ich hin, geht aber nicht.
      Kannst du mir nochmal helfen (oder auch jemand anderes..)? Ich sag auch ganz lieb bitte: Bitte! Danke. *scnr*

      Schöne Grüsse,
      Dave

      1. Hallo Dave,

        jetzt funzt das aber nicht, dass, wenn der Geamtwert (z.B. 12) minus den Startwert (z.B. 10 = 2) < 10 ist, nur noch die restlichen Beiträge ausgegeben werden... dann macht er mir immer noch 10 Zellen... sollen aber nur 2 sein... Ich dachte, das krieg ich hin, geht aber nicht.

        ich weiß nicht, ob ich das jetzt 100%ig verstanden habe, aber ein if($start == $x) { break; } könnte helfen. Allerdings habe ich keine Ahnung ob die if-Bedingung für deinen Fall funktioniert.

        Grüße aus Nürnberg
        Tobias