Frank Hoppe: (PHP) Ausgabe die ersten 5 dann die nächsten 5 usw.

Hallo,

ich baue mir einen Shop nun möchte ich das nicht die ganzen Artikel angezeigt werden sondern die ersten 5 dann kann man weiterklicken von 5-10 usw. (ähnlich wie google)

Ist es nicht sinnvoller die Datenbankabfrage auf die ersten 5 Ergebnisse zu beschränken um nicht unnötige Resourcen zu verbrauchen?

Meine Frage ist gibt es von mysql eine Möglichkeit die Anzahl der Ergebnisse in der Abfrage einzubauen? Wie zb. 0-4 dann 5-9 usw.

Macht es überhaupt Sinn so zu arbeiten oder soll ich lieber alle Ergebnisse aus der Datenbank holen?

Gruß Frank Hoppe

  1. IMHO musst du bei jeder Ergebnisseite (also 1-5, 6-10) zwei DB-Abfragen machen:
    1. Anzahl gesamter Einträge
    2. Einträge 1-5 o.ä.
    du kannst aus der anzahl der gesamten Einträge die Anzahl der Seiten ermitteln (wenn du weißt, dass du 5 einträge auf jeder Seite möchtest)
    wenn du zB bei Seite 4 bist ist das limit (3*5),5
    (was dir 5 zeilen ab linie 15 gibt)

    1. wenn du zB bei Seite 4 bist ist das limit (3*5),5

      schreibfehler: für seite 4 wäre es dann natürlich 4*5, bzw. 4*(anzahl einträge pro seite)

      1. wenn du zB bei Seite 4 bist ist das limit (3*5),5

        schreibfehler: für seite 4 wäre es dann natürlich 4*5, bzw. 4*(anzahl einträge pro seite)

        Ohja Danke erstmal für die Hilfe ich werde mal nach Beispielen suchen und es dann umsetzen.

        Dann würde das ganze noch mehr Sinn machen wenn man das Limit als Variable setzen kann und der User es selber umstellen kann.

        Gruß Frank Hoppe

  2. yo,

    SELECT spalten FROM tabellen LIMIT x,y;

    wobei x (0) startwert und y anzahl der datensätze ist.

    Ilja

  3. Hi Frank,

    diese Möglichkeit gibt es. Wenn du zum Beispiel schreibt:
    SELECT * FROM tabelle LIMIT 0, 5
    müsste dir MySQL von der Position 0 (also dem ersten Datensatz) die folgenden 5 Datensätze liefern. So ist es mir zumindestin Erinnerung. Vom ersten Eindruck her, macht es durchaus Sinn, so zu  arbeiten. Meiner Meinung nach zumindest.

    Gruß,
    Andreas

  4. Hi,

    in der Abfrage kannt du mit LIMIT einen Startppunkt festlegen und dann angeben wieviel ab dem Startpunkt ausgegeben werden soll.

    LIMIT 5,5

    Gibt ab dem 5. gefundenen Wert 5 Werte aus.

    mfg