kutti: zweites LIMIT? (mysql)

HI!

Ich habe eine Seite, mit den 50 zuletzt verkauften Produkten.
Diese Seite möchte ich nun durch 5 teilen, weil ich gern auf jeder HTML-Seite nur 10 stück haben möchte (der Übersicht halber).
Nach Möglichkeit alles in einem Statement.

Zusammenfassung: Letzte 50 Produkte, auf jeder Seite werden aber nur 10 angezeigt.

Gibts für sowas einen Trick?
Es gibt nämlich kein WHERE-Kriterium für die letzten 50 Verkäufe.

  1. yo,

    Gibts für sowas einen Trick?

    keinen trick, sondern in der doku nachzulesen, das LIMIT zwei parameter aufnehmen kann und damit bekommst du das ganz leicht hin.

    ...
    LIMIT startwert, 10

    Ilja

    1. Was hat das denn mit meinem problem zu tun? Bitte nicht nur lesen, sondern auch verstehen.

      Ich brauche die letzten 50 Einträge der Tabelle, die ich dann mit LIMIT durch 10 Teile. Du hast mir nur gesagt, wie ich jede Seite auf 10 begrenzen kann. Dadurch ist das LIMIT nun aber vergeben und ich komm nicht mehr an die letzten 50 Einträge ran.

      1. Bitte nicht nur lesen, sondern auch verstehen.

        Dito. Erkläre uns mal den Sinn von "alles in einem Statement", wenn Du wohl kaum 5 einzelne HTML-Seiten mit einem Script-Aufruf, also quasi gleichzeitig, zurückliefern kannst.
        Je nach Seite das Limit setzen ist also genau das was Du brauchst.

        1. Dann machen wir doch eine kleine Aufgabe:

          SELECT SQL_CALC_FOUND_ROWS id, kunde FROM kunden LIMIT $start, 10

          Wo bleibt die Bedingung die sagt, dass ich eine Ergebnistabelle mit den letzten 50 Kunden brauche?
          Zur Probe kann man ja später einfach SQL_CALC_FOUND_ROWS abfragen, dieses müsste dann exakt 50 ergeben.

          Also, nochmal ein Versuch: "Ich brauche die letzten 50 Kunden, verteilt auf 5 Seiten mit 10 auf jeder Seite."

          Eure Argumente lösen lediglich den Satzteil nach dem Kommata!
          Wo bleibt das Argument für die letzten 50 Kunden?

          1. Gegenfrage:
            Wozu brauchst Du auf der 3. Ergebnisseite alle 50 Datensätze. Du willst doch nur die Matches 21-30 ausgeben.

          2. yo,

            SELECT SQL_CALC_FOUND_ROWS id, kunde FROM kunden LIMIT $start, 10

            Wo bleibt die Bedingung die sagt, dass ich eine Ergebnistabelle mit den letzten 50 Kunden brauche?

            bei diesem staement fehlt noch eine ORDER BY klausel, damit du es auf die "letzten" sortierst und dann limitierst.

            Ilja

          3. Yerf!

            Also, nochmal ein Versuch: "Ich brauche die letzten 50 Kunden, verteilt auf 5 Seiten mit 10 auf jeder Seite."

            Eure Argumente lösen lediglich den Satzteil nach dem Kommata!
            Wo bleibt das Argument für die letzten 50 Kunden?

            Wenn du wirklich auf jeder Seite nicht nur die 10 dargestellten sondern alle 50 brauchst, musst Du 2 Statements verwenden. Denn ein Statement kann nur ein Ergebnis liefern.

            Alternativ kannst Du natürlich auch einfach nur alle 50 geben lassen und dann im Programm einfach die passenden 10 daraus entnehmen, so ganz ohne SQL.

            Gruß,

            Harlequin