Datensätze eines bestimmten Monats ermitteln

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

  • Datensätze eines bestimmten Monats ermitteln

    Hallo !

    Ich hab folgendes Problem:

    Die PHP Schnittstelle:

    GetNumMessMonth ($year, $month)

    Nun möchte ich die Anzahl der Datensätze ermitteln für einen ganzen Monat - der eben über die Schnittstelle reinkommt.

    zb.: $year = 2007
    $month = 7

    Die Anzahl bekomm ich mit COUNT(*) - das is mir klar - nur wie sieht die WHERE Klausel aus ?

    Ich mich hier schon schlau machen wollen. Aber ich blick nicht ganz durch.

    Vielleicht kann mir wer weiterhelfen.

    Aja hab noch was vergessen - Das Datum in der DB ist als DATETIME gespeichert !

    lg
    Manuel
    Zuletzt geändert von geishauserm; 14.07.2007, 15:29.

  • #2
    nur wie sieht die WHERE Klausel aus ?
    Wie sieht denn die Tabelle aus?

    Kommentar


    • #3
      Eine ganz einfache Tabelle

      id(INT) | text(VARCHAR) | datetime(DATETIME)

      Kommentar


      • #4
        Stichwort: MONTH(feldname) und YEAR(feldname).
        Mit dem Feld "datetime" wirst Du übrigens noch Probleme kriegen, weil reserviertes Wort. Würde ich umbenennen.

        Kommentar


        • #5
          Aaaaa ok danke.
          Ich dachte die beiden Funktion funktionieren nur für DATE und nicht für DATETIME. Hätte es einfach ausprobieren sollen. Danke nochmal.

          Habs jetzt so probiert:

          mysql> select COUNT(*) FROM Messages WHERE YEAR(SendDate)=2007 AND MONTH(SendDate)=07;
          +----------+
          | COUNT(*) |
          +----------+
          | 5 |
          +----------+

          und funktioniert

          Kommentar


          • #6
            Hätte es einfach ausprobieren sollen.
            oder lesen...

            Kommentar


            • #7
              ja - hätte auch geholfen

              Functions that expect date values usually accept datetime values and ignore the time part. Functions that expect time values usually accept datetime values and ignore the date part.
              Ich hab nicht die ganze Seite durchstöbert sondern eben nur die Funktionen die nützlich sein könnten.

              Kommentar


              • #8
                Hallo

                Ich habe ein ähnliches Problem:

                Ich möchte aus meiner Datenbank nur diese Datensätze auslesen, welche mit dem heutigen Tag und Monat übereinstimmen. Hier habe ich von der Funktion MONTH gelesen und dann bin ich auf DAY() gestossen. Doch es klappt nicht.
                Ich weiss auch nicht, ob er das Datum mit führenden Nullen ausgibt.

                PHP-Code:
                $sql "SELECT 
                            `fd_name, 
                            DATE_FORMAT(fd_date, '%d.%m') as date, 
                            DATE_FORMAT(fd_date, '%Y') as dasAlter 
                        FROM 
                            `tb_birthday`
                        WHERE 
                            DAY(fd_date) = '"
                .date('j')."'
                            AND
                            MONTH(fd_date) = '"
                .date('n')."' 
                        ORDER BY 
                            `dasAlter` ASC"

                Das Feld `fd_date`ist vom Typ DATE und so aufgebaut: yyyy-mm-dd


                Merci wapplegraph

                Kommentar


                • #9
                  Original geschrieben von wapplegraph
                  Doch es klappt nicht.
                  Das ist keine Problembeschreibung, verflixt noch mal.

                  Deine Query, wenn sie wirklich so lautet, wie gepostet, enthält zunächst mal einen recht offensichtlichen Syntaxfehler.

                  Lies die Regeln, da steht drin, was kleine "funzt nicht"-Noobs machen sollen, wenn es mit MySQL "nicht funzt".
                  I don't believe in rebirth. Actually, I never did in my whole lives.

                  Kommentar


                  • #10
                    Deine Query, wenn sie wirklich so lautet, wie gepostet, enthält zunächst mal einen recht offensichtlichen Syntaxfehler.
                    Ja, das sagt mir auch MySQL, dass ich hier:


                    PHP-Code:
                    'WHERE 
                                DAY(fd_date) = '".date('j')."'
                                AND
                                MONTH(fd_date) = '".date('n')."' 
                            ORDER BY ' 
                    für den richtigen Syntax suchen soll, doch im Moment sehe ich ihn nicht.
                    Darum wäre ich froh, wenn mir jemand einen Tipp geben könnte, auf was ich achten muss.

                    wapplegraph

                    Kommentar


                    • #11
                      achte darauf, dass man "den richtigen syntax" nur bei mitternacht im wald findet.

                      achte auf die backticks und hochkommata.

                      Kommentar


                      • #12
                        Oh Mann ich werde verrückt vor dieser Zeile.

                        Müssen Zahlen in Hochkommas stehen? Muss der Feldname in Hochkommas oder Backticks stehen?

                        wapplegraph

                        Kommentar


                        • #13
                          es ist ein großes geheimnis und kein einziges buch oder manual wird es dir verraten.

                          Kommentar


                          • #14
                            Ah ich habs.
                            Es lag daran, das Dreamweaver immer automatisch ein zweites Hochkomma macht oder weglöscht und so fehlte mir immer ein Hochkomma, obwohl ich es immer schrieb. Doch egal nun klappts.

                            Ich habe es jetzt sogar nur mit MySQL gelöst, das query:


                            PHP-Code:
                            $sql "SELECT 
                                        `fd_name`, 
                                        DATE_FORMAT(fd_date, '%d.%m') as date, 
                                        DATE_FORMAT(fd_date, '%Y') as dasAlter 
                                    FROM 
                                        `tb_birthday`
                                    WHERE 
                                        DAY(fd_date) = DAY(NOW())
                                        AND
                                        MONTH(fd_date) = MONTH(NOW())
                                    ORDER BY  
                                        `dasAlter` ASC"

                            wapplegraph

                            Kommentar


                            • #15
                              Dreamweaver
                              OffTopic:
                              Für PHP / SQL? *graus*
                              Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

                              Kommentar

                              Lädt...
                              X