Anzeige Datensätze der letzten 24h

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

  • Anzeige Datensätze der letzten 24h

    Wie realiesiere ich mit PHP eine Abfrage von MySQL Datensätze der letzten 24h nach aktueller Zeit?
    D.h. wenn ich momentan die Datensätze der letzten 24 Stunden angezeigt bekommen möchte, müsste der die aktuelle Zeit nehmen(mit Datum) und von dieser 24 Stunden abziehen, alles aus diesem Zeitraum anzeigen.....geht das einfach mit Timestamp? Umwandeln der aktuellen zeit ist ja kein Problem, aber wie ziehe ich dann 24 Stunden davon ab (auch wenn evt. noch Überschneidung mit der 00:00 Uhr Grenze) ??



    Achja, im Datensatz der DB ist logischerweise das Datum und die Zeit des jeweiligen Datensatzes gespeichert. (0000-00-00 und 00:00:00)

  • #2
    select from TABELLE where feld-datum >= date_sub(now(), interval 24 hour)
    EDIT:
    verschieb nach sql
    Zuletzt geändert von schmalle; 15.08.2003, 10:07.
    h.a.n.d.
    Schmalle

    http://impressed.by
    http://blog.schmalenberger.it



    Wichtige Anmerkung: Ich habe keine Probleme mit Alkohol ...
    ... nur ohne :-)

    Kommentar


    • #3
      Super, das geht ja saueinfach.
      Und ich mach mir hier einen Kopf mit timestamps etc....
      Aber ein Problem gibt es noch:
      Wieso zeit er mir momentan Daten an, die von heute sind (15.08.2003) aber erst Uhrzeit 14:30 eingetragen sind. Kann man das noch irgendwie berücksichtigen? Dürften dann nur Daten rauskommen, bei denen die Uhrzeit auch kleiner ist als wie aktuelle Zeit.....

      Kommentar


      • #4
        select from TABELLE where feld-datum >= date_sub(now(), interval 24 hour) and feld-datum <= now()

        isses bei dir noch so warm wie vor 3 tagen?
        h.a.n.d.
        Schmalle

        http://impressed.by
        http://blog.schmalenberger.it



        Wichtige Anmerkung: Ich habe keine Probleme mit Alkohol ...
        ... nur ohne :-)

        Kommentar


        • #5
          Original geschrieben von schmalle
          select from TABELLE where feld-datum >= date_sub(now(), interval 24 hour) and feld-datum <= now()

          isses bei dir noch so warm wie vor 3 tagen?

          Kommentar


          • #6
            Sorry das ich nochmal nerve, aber irgendwie klappt das nicht so richtig mit der Abfrage:

            Wenn jetzt grad der 27.08. ist und 14:00 Uhr, dann zeigt er mir trotzdem Datensätze an, die vom 26.08. um 13:30 Uhr sind......
            Normalerweise würde ich ja auch sagen, das es logisch wäre, die letzte kleinergleich-Abfrage, die mit dem "AND" verknüpft ist, in eine größergleich-Abfrage zu verwandeln, denn man will ja alle Datensätze, in denen die Zeit größer ist als der jetzige Zeitpunkt, aber das klappt auch nicht, dann lässt er Datensätze weg.
            Bin ich zu blöd dafür oder stimmt da mit dem Code noch was nicht?

            Kommentar


            • #7
              willsu mich fertig machen? erst sollen nur die alten beiträge angezeigt werden, und jetzt nicht mehr?
              h.a.n.d.
              Schmalle

              http://impressed.by
              http://blog.schmalenberger.it



              Wichtige Anmerkung: Ich habe keine Probleme mit Alkohol ...
              ... nur ohne :-)

              Kommentar


              • #8
                Also wenn ich ihn richtig verstanden habe möchte er nur Datensätze ausgeben von heute (2003-08-28 von 00:00:00 bis 23:59:59)
                BTW das selbe für gestern.

                Dann musst du deinen Abfrage so gestalten:
                Code:
                WHERE (spalte_datum BETWEEN '2003-08-28 00:00:00' AND '2003-08-28 23:59:59') 
                ORDER BY spalte_datum ASC
                *winks*
                Gilbert
                ------------------------------------------------
                Hilfe für eine Vielzahl von Problemen!!!
                http://www.1st-rootserver.de/

                Kommentar


                • #9
                  Original geschrieben von schmalle
                  willsu mich fertig machen? erst sollen nur die alten beiträge angezeigt werden, und jetzt nicht mehr?
                  Nicht doch!
                  Da hatten wir wohl ein kleines Verständigungsproblem.....

                  @ Wotan
                  Genau, super, danke!

                  Kommentar


                  • #10
                    Original geschrieben von el_espiritu
                    Nicht doch!
                    Da hatten wir wohl ein kleines Verständigungsproblem.....

                    @ Wotan
                    Genau, super, danke!
                    Vielleicht solltes dich das nächste mal besser ausdrücken, ich musst den Text auch dreimal lesen, bevor ich verstanden hatte was du willst.
                    *winks*
                    Gilbert
                    ------------------------------------------------
                    Hilfe für eine Vielzahl von Problemen!!!
                    http://www.1st-rootserver.de/

                    Kommentar


                    • #11
                      OK, ich versuchs.

                      Original geschrieben von Wotan
                      Dann musst du deinen Abfrage so gestalten:
                      Code:
                      WHERE (spalte_datum BETWEEN '2003-08-28 00:00:00' AND '2003-08-28 23:59:59') 
                      ORDER BY spalte_datum ASC
                      Ich habe bei meiner Datenbank das Datum und die Zeit in getrennten Feldern, lässt sich das dann irgendwie in dein Beispiel integrieren ???
                      Also da wo nun '2003-08-28 00:00:00' steht müssten dann die Felder der Datenbank rein.

                      Kommentar


                      • #12
                        Dann ist die Abfrage ja ganz einfach.
                        PHP-Code:
                        // Hiermit kannst du dann rechnen
                        $jahr date('Y');
                        $monat date('m');
                        $tag date('d');

                        // Zusammengesetzt
                        $datum $jahr.'-'.$monat.'-'$tag;

                        // Oder aber als ein Wert
                        // $datum = date('Y-m-d'); 
                        Und das ist dann die Abfrage
                        Code:
                        WHERE spalte_datum='$datum' ORDER BY spalte_datum ASC
                        *winks*
                        Gilbert
                        ------------------------------------------------
                        Hilfe für eine Vielzahl von Problemen!!!
                        http://www.1st-rootserver.de/

                        Kommentar


                        • #13
                          Aber dann würde ja wiederrum eine schlechte Abfrage entstehen....
                          Wenn man jetzt morgens um 8:00 Uhr eine Abfrage nach den letzten 24h macht, würde mit der Methode die du grad gepostet hast ja keiner von 23:30 Uhr gelistet werden, da ja anderes Datum. Oder steh ich jetzt total auf dem Schlauch ????

                          Kommentar


                          • #14
                            WAS WILLST DU JETZT 24STUNDEN ODER DEN LETZTEN TAG(SPRICH HEUTE)????

                            Die 24Stunden hat dir Schmalle schon gepostet und die Tage habe ich dir gepostet.

                            ALSO WAS WILLST DU JETZT????
                            *winks*
                            Gilbert
                            ------------------------------------------------
                            Hilfe für eine Vielzahl von Problemen!!!
                            http://www.1st-rootserver.de/

                            Kommentar


                            • #15
                              Ich will die LETZTEN 24 STUNDEN.
                              Aber das muss eben auch funzen wenn ein Datumswechsel über Nacht stattgefunden hat. Und das hat eben mit Schmalles Beispiel nicht gefunzt.

                              Beispiel:

                              Zeit 8:00 Uhr
                              Datum 28.08.03
                              Abfrage über die letzten 24 Stunden
                              Ergebnis: Alle in der Zeit vom 27.08.03/8:00 Uhr bis 28.08.03/8:00 Uhr

                              Ist es jetzt verständlicher?

                              Kommentar

                              Lädt...
                              X