Nico: &MySQL : Anzeige der Datensaetze begrenzen

Hallo,

seit einiger Zeit schlage ich mich mit einem Problem herum, fuer dessen Loesung ich Eure Hilfe braeuchte:

Wie steuere per PHP die Ausgabe einer limitierten Anzahl von Datensaetzen aus einer MySQL - Datenbank (bis hierher kein Prob.!)

UND (!!!)

fuege darunter Seitenzahlen ein fuer die Anzeige der jeweils naechsten Serie an Datensaetzen.

Beste Gruesse
Nico

  1. Moin

    seit einiger Zeit schlage ich mich mit einem Problem herum, fuer dessen Loesung ich Eure Hilfe braeuchte:
    Wie steuere per PHP die Ausgabe einer limitierten Anzahl von Datensaetzen aus einer MySQL - Datenbank (bis hierher kein Prob.!)
    UND (!!!)
    fuege darunter Seitenzahlen ein fuer die Anzeige der jeweils naechsten Serie an Datensaetzen.

    Na du brauchst eine Variable die du von Seite zu Seite weitergibst und die die aktuelle Seitenzahl enthält, nennen wir sie $p. Hier ein Beispiel für 20 Datensätze pro Seite (anpassen kannst du das sicherlich selbst):

    <?php
    if($p<0) $p=0; // zu kleines $p wird auf 0 gesetzt
    $result=mysql_query("SELECT COUNT(*) FROM table"); // Abfrage der Anzahl der Datensätze
    list($num)=mysql_fetchrow($result);

    if(($p+1)*20 > $num) $p=floor($num/20); // zu großes $p wird nach unten gerundet

    $result=mysql_query("SELECT wasauchimmerduwillst FROM table LIMIT ".($p*20).",20"); // eigentliche Abfrage

    // ....hier  kommt der Rest deines PHP- und/oder HTML-Codes

    //Link ausgeben
    if($p>0) { ?>
    <a href="?p=<?php echo $p-1;?>">Zurück</a>
    <?php } if($p< $num/20) { ?>
    <a href="?p=<?php echo $p+1;?>">Weiter</a>
    <?php }

    // .. und noch mehr Code

    ?>

    Achtung: Ungetestet, und keine Garantie für Syntax-Fehler oder off-by-one errors, aber das Prinzip sollte stimmen :)

    H2H

    --
    Henryk Plötz
    Grüße von der Ostsee

    1. Hi Henryk,

      herzlichen Dank fuer die prompte Antwort. Dem Anschein nach ist es genau das, was ich suchte.
      Ich werde den Code in mein Script einfuegen und testen. Gebe dann Rueckmeldung

      Gruesse aus Luxemburg
      Nico

  2. Hallo Nico,

    Wie steuere per PHP die Ausgabe einer limitierten Anzahl von Datensaetzen aus einer MySQL - Datenbank (bis hierher kein Prob.!)

    SELECT .. FROM ... WHERE ... LIMIT 0,5
                                 ^^^^^^^^^
    gibt die ersten 5 resultate aus der Abfrage aus... 0 ist der Startwert und 5 das Limit das angegeben wird...
    weiterführende hilfe gibt es bestimmt aus mysql.com. muß man halt nen bißchen suchen....

    UND (!!!)

    na jetzt kommts aber ;o)

    fuege darunter Seitenzahlen ein fuer die Anzeige der jeweils naechsten Serie an Datensaetzen.

    das is halt ne sache von Deinen script..
    finde herraus wieviele resultate deine abfrage gebracht hat, teile dies durch die anzahl der einträge die du auf einer seite haben willst und du hast die seitenmenge...
    nun mußt du halt noch den startwert bei limit hochsetzten wenn auf eine weitere seite verwiesen wird
    z.B.
    $start = $seite + 20; // ermittelt die seite.. und berechnet den startwert
    .... SELECT ...... LIMIT = $start, 20 ....

    ich hoffe das war soweit verständlich ....wenn nicht .. frag einfach nochmal nach ;o)

    MfG

    DerSchneemann

    1. Hi Snowman,

      danke fuer Deinen Loesungsansatz!

      Denkst Du nicht, dass Henryks Code das Problem loest? Ich hab's ncoh nicht getestet, aber duerfte doch dem ersten Anschein nach in die richtige Richtung deuten ... (?)

      Gruesse
      Nico