Datenbank + Überprüfung

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

  • Datenbank + Überprüfung

    Hallo,

    wie kann ich folgendes erreichen:
    Ich habe eine Datenbank:

    |ID|AID|ZEIT|STATUS|
    ---------------------------

    Wie kann ich es nun erreichen, dass er erst checken soll, ob es einen letzten Eintrag (TIMESTAMP in ZEIT) gibt, welcher den STATUS 0 hat.
    Wichtig ist eben, dass es der letzte sein muss...
    Also wenn es mehrere Einträge gibt wie z.B.
    1 | 2| 22154512051998| 0|
    2 | 2| 22164512051998| 0| <=== Den sollte er beachten, da es der letzte aktuelleste ist.

    Gruss

  • #2
    Die Query hier ist einen Versuch wert:
    Code:
    select t.* from Tabelle t
    left join Tabelle u on u.AID=t.AID and u.ZEIT>t.ZEIT
    where t.STATUS=0 and u.ID is null
    Eventuell muss noch 'group by t.AID' angehängt werden, sollte aber eigentlich nicht.

    Sollte das nicht funktionieren:[list=1][*]select distinct AID from Tabelle where STATUS=0
    damit hast du erstmal alle verschiedenen AID, bei denen es überhaupt einen Eintrag mit STATUS=0 gibt.[*]dann für jede einzelne $aid:
    "select * from Tabelle where AID=$aid order by ZEIT desc limit 0,1"[/list=1]
    mein Sport: mein Frühstück: meine Arbeit:

    Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

    Kommentar


    • #3
      Könnte man das nicht mit ner LAST_INSERT_ID() kombiniert mit der status-Abfrage lösen?
      heute bug ich, morgen browse ich...

      Kommentar


      • #4
        @frezno: nö.
        mein Sport: mein Frühstück: meine Arbeit:

        Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

        Kommentar


        • #5
          warum nicht
          Code:
          SELECT status
          FROM tabelle
          ORDER BY zeit DESC
          LIMIT 1
          ?
          Ich denke, also bin ich. - Einige sind trotzdem...

          Kommentar


          • #6
            Ich hatte so das Gefühl, es soll von der AID abhängen ... meine Query liefert (hoffentlich) die Datensätze, für die es bei gleicher AID keinen Nachfolger gibt und die gleichzeitig den Status 0 haben. Deine Query liefert den Status des jüngsten Eintrags unabhängig von der AID, und freznos Idee läuft das gleiche hinaus.

            Übrigens habe ich bei meiner Alternative noch was vergessen:
            3. per php prüfen, ob Status=0
            (für den Fall, dass ein Element STATUS=0 haben kann, ein späteres aber Status<>0)
            mein Sport: mein Frühstück: meine Arbeit:

            Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

            Kommentar


            • #7
              Also, wenn ich das richtig verstehe:

              ob es einen letzten Eintrag (TIMESTAMP in ZEIT) gibt, welcher den STATUS 0 hat.
              Wichtig ist eben, dass es der letzte sein muss...
              Dann schaue ich mir den letzten Eintrag an, und prüfe, ob da der Status 0 ist.
              Nicht mehr, nicht weniger.
              heute bug ich, morgen browse ich...

              Kommentar


              • #8
                hmmmm, es gäbe evtl. ne zweite Möglichkeit. Die würde aber evtl. dem gemachten Beispiel widersprechen.
                Wenn mit 'letzter Eintrag' nicht (nur) das Hinzufügen eines Eintrages gemeint ist,
                sondern auch das modifizieren eines Eintrages. Dann müsste man über die Zeitabfrage gehen.
                heute bug ich, morgen browse ich...

                Kommentar


                • #9
                  LAST_INSERT_ID is schwachsinn, da ich nur die id des eben eingeügten datensatzes habe
                  und von demdatensatz, den ich eingefügt habe, kenne ich normalerweise den status, da ich ja im insert für status einen wert angebe...

                  die zeitabfrage haben wir oben schon stehen
                  Ich denke, also bin ich. - Einige sind trotzdem...

                  Kommentar


                  • #10
                    Original geschrieben von mrhappiness
                    LAST_INSERT_ID is schwachsinn, [...] von demdatensatz, den ich eingefügt habe, kenne ich normalerweise den status, da ich ja im insert für status einen wert angebe...
                    ???

                    Ein User gibt nen Text ein (status 0), der erst überprüft werden soll und dann freigeschaltet wird (status 1).
                    Ich frage turnusmässig ab, ob ein neuer Text (status 0) hinzugekommen ist.

                    Woher soll ich denn wissen, welchen Status der letzte INSERT hat?
                    heute bug ich, morgen browse ich...

                    Kommentar


                    • #11
                      wenn du regelmäßig abfragst, ohne etwas einzufügen, was gleubst du, wird dir LAST_INSERT_ID() liefern?

                      0?
                      richtig
                      Ich denke, also bin ich. - Einige sind trotzdem...

                      Kommentar


                      • #12
                        Ich meinte eher, woher soll ich denn wissen, ob zwischenzeitlich was eingefügt wurde?

                        Wenn ich weiss, wann was eingefügt wurde, bräuchte ich ja bloss dann eine Abfrage starten,
                        obwohl, die könnte ich ja dann auch bleiben lassen, wenn bei jedem INSERT grundsätzlich der Status 0 ist.

                        Also entweder reden wir aneinander irgendwie vorbei, oder ich steh völlig auf'm Schlauch und kapiere nix.
                        Ich lasse beides gelten
                        heute bug ich, morgen browse ich...

                        Kommentar


                        • #13
                          Original geschrieben von frezno
                          Also entweder reden wir aneinander irgendwie vorbei, oder ich steh völlig auf'm Schlauch und kapiere nix.
                          Ich lasse beides gelten
                          ok
                          Ich denke, also bin ich. - Einige sind trotzdem...

                          Kommentar

                          Lädt...
                          X