Zwischen Datum1 und Datum2 abfragen

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

  • Zwischen Datum1 und Datum2 abfragen

    EHRLICH! Ich habe jetzt wieder lange gesucht und nichts gefunden zu meinem nächsten Problem:

    Ich habe hier im Forum ein Beispiel gefunden, um zwischen zwei Datumsformaten abzufragen, aber mit der Ausgabe scheint es überhaupt nicht hinzuhauen:

    PHP-Code:
    $start "2005-09-01";
    $ende "2005-09-19";
            
    $result mysql_query("select * from stats where (`datum` BETWEEN ($start) AND ($end)) ORDER BY `datum` DESC"); 
    wenn ich das dann per while-schleife ausgeben will, heisst es dass er die nicht will:

    PHP-Code:
    while($row mysql_fetch_array($result)) {
              
    $id $row[0];
            
            
    $stats++;
            
            
    $statistik $statistik."ID: $stats - statsid: $id -<br>";
            
            }

    echo 
    "Statistiken: $statistik"
    Auch mit mysqlfetch_row bekomme ich kein ergebnis.
    Das Datum ist immer auf die Art 2005-09-01, 2005-09-02, etc. drin.

    Oder kann ich so gar nicht die Inhalte zwischen zwei Datumsformaten abfragen?

    Thanx

  • #2
    von welchem typ ist das feld "datum"?

    Kommentar


    • #3
      verstehe ich jetzt nicht

      Kommentar


      • #4
        http://dev.mysql.com/doc/mysql/de/column-types.html

        Kommentar


        • #5
          2005-09-01 = 1995
          2005-09-19 = 1977

          Du suchst also Einträge, bei denen das Datum zwischen der Zahl 1995 und der Zahl 1977 liegt, ziemlich unwahrscheinlich, da was zu finden, meinst du nicht?

          Verwende statt 2005-09-01 und 2005-09-01 doch mal '2005-09-01' und '2005-09-19'
          Ich denke, also bin ich. - Einige sind trotzdem...

          Kommentar


          • #6
            1. Lass dir prinzipiell nach jedem mysql_query() die Fehlermeldung des Datenbankservers ausgeben, wie hier in der Lektion beschrieben ist:

            http://www.lernpilot.de/wbt/kurse/in...ysql01&seite=9

            Die Funktion heißt mysql_error().

            damit findest du dann schon mal die meisten Fehler.

            2. Bei deiner Abfrage fehlen die Anführungszeichen beim Datum:

            Code:
            $result = mysql_query("select * from stats where datum BETWEEN '$start' AND '$end' ORDER BY datum DESC");
            Die Backticks beim Spaltennamen sind zwar nicht falsch, aber in deinem Fall auch nicht notwendig.

            Gruß Marian
            Online-Kurse die jeder versteht: HTML, PHP, MySQL, Word, Excel
            http://www.lernpilot.de/wbt/

            Kommentar


            • #7
              Also liebe Leute!

              Zunächst einmal herzlichen Dank für all die guten Tips!
              Haben mir weitergeholfen.

              Ich habe nun wie folgt die Abfrage geändert:
              PHP-Code:
              $result mysql_query("select * from stats where (`datum` BETWEEN '$start' AND '$end') ORDER BY `datum` DESC"); 
              und bekomme auch keine Fehlermeldung mittels:

              PHP-Code:
              echo mysql_error(); 
              Dann habe ich den Tip befolgt ' vor und nach dem Datum in der DB reinzusetzen. Ohne Erfolg.
              Dann habe ich von varchar auf DATE geändert. Auch ohne Ergebnis.

              Ergebnis bekomme ich leider trotz Eurer redlichen Bemühungen dennoch nicht. Woran kann das liegen?

              Kommentar


              • #8
                Original geschrieben von vincmar
                Dann habe ich von varchar auf DATE geändert.
                ach, jetzt schon ...?
                sind die spaltenwerte nach der änderung korrekt?


                wie sieht die zusammengesetzte query aus, die du an die DB übergibst?
                I don't believe in rebirth. Actually, I never did in my whole lives.

                Kommentar


                • #9
                  Fehler gefunden! Die Abfrage sollte so lauten:

                  PHP-Code:
                  $result2 mysql_query("select * from stats where datum BETWEEN ('$start') AND ('$ende') ORDER BY 'date' DESC"); 
                  Danke an alle, die mir geholfen haben!
                  Zuletzt geändert von vincmar; 20.09.2005, 09:59.

                  Kommentar


                  • #10
                    das würde mich wundern, wenn's so klappt.

                    weil die feldernamen (vor allem, wenn es reservierte wörter sind) in backticks (``) gehören.

                    Kommentar


                    • #11
                      Ähm! Funktioniert aber so.

                      Kommentar


                      • #12
                        und nach dem wert der zeichenkette 'date' sortieren zu lassen, ist auch ganz großes tennis.
                        I don't believe in rebirth. Actually, I never did in my whole lives.

                        Kommentar

                        Lädt...
                        X