[PHP5] Vorheriger Eintrag aus der Datenbank holen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [PHP5] Vorheriger Eintrag aus der Datenbank holen

    Hallo,

    ich suche nach einem Lösungsansatz, wie würdet ihr es angehen, wenn Ihr einen Datensatz aus einer MySQL Tabelle habt z.B.

    id = 8
    name = B


    Jetzt wollt Ihr den Datensatz haben, der vor diesem liegt wenn die Tabelle nach name sortiert wäre also wäre das zum Beispiel:

    id = 12
    name = A

  • #2
    wie sieht den deine sql-abfrage aus?

    peter
    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
    Meine Seite

    Kommentar


    • #3
      Re: [PHP5] Vorheriger Eintrag aus der Datenbank holen

      Original geschrieben von Laire
      wie würdet ihr es angehen
      Nun, zunaechst mal wuerde ich es ins richtige Forum posten ... *verschieb*

      Und dann wuerde ich mir ein paar Gedanken darueber machen, wie man WHERE, ORDER BY und LIMIT wohl sinnvoll fuer sowas einsetzen kann.
      [color=cccccc](Und der Schritt, die Frage in einem Forum zu stellen, wuerde dabei ganz nebenbei auch entfallen ...)[/color]
      I don't believe in rebirth. Actually, I never did in my whole lives.

      Kommentar


      • #4
        Hatte es bei PHP gepostet weil es meiner Meinung nach nicht bei einer reinen MYSQL Statement bleiben wird.

        Die erste Abfrage im Script eist eine einfach gezielte Abfrage nach ID:

        Code:
        SELECT
         id, name
        FROM
         tabelle
        WHERE
         id = 8
        So jetzt möchte ich gerne weiter hinten im Script den Eintrag haben der, wenn nach Name sortiert, davor liegt.

        Hatte über legt mit php sowas in der Art zu machen ($id1 ist die id von dem Datensatz aus der ersten Abfrage):

        PHP-Code:
        $result mysql_query("
         SELECT
          id, name
         ORDER BY
          name ASC
        "
        )
        while(
        $row mysql_fetch_array){
         if(
        $row[0] != $id1){
          
        $temp $row;
         }else{
          break;

        Jetzt müsste ich ja, den vorherigen Eintrag haben, aber geht es nicht einfacher?

        @wahsaga
        Nun jetzt möchte ich gerne mal wissen wie man das mit reinem WHERE, ORDER BY und LIMIT machen soll? Dann werde ich mich auch entschuldigen diese Frage in einem Forum getsellt zu haben!
        Zuletzt geändert von Laire; 25.02.2009, 20:40.

        Kommentar


        • #5
          Original geschrieben von Laire
          Nun jetzt möchte ich gerne mal wissen wie man das mit reinem WHERE, ORDER BY und LIMIT machen soll?
          Du hast einen Wert, und willst "den naechsten" haben - das setzt also Sortierung voraus, denn ansonsten gibt es "den naechsten" gar nicht.
          Da du innerhalb dieser Sortieung nur an den Werten interessiert bist, die "davor" liegen, kommt ebenfalls WHERE ins Spiel - alle Werte, die "vor" dem bekannten Wert liegen, also in der gewaehlten Sortierung "kleiner" als dieser sind.
          Und dann letztendlich noch LIMIT, weil du ja nur an genau einem "naechsten" Datensatz interessiert bist.

          Code:
          SELECT id, name
          FROM tabelle
          WHERE name < 'bekannterNameAusErstemDatensatz'
          ORDER BY name DESC
          LIMIT 1
          Die Sortierung nach name erfolgt hier absteigend, um anschliessend von allen in Frage kommenden nur den ersten zu nehmen.
          I don't believe in rebirth. Actually, I never did in my whole lives.

          Kommentar

          Lädt...
          X