Announcement

Collapse
No announcement yet.

Datenabfrage nach Zeitraum

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Datenabfrage nach Zeitraum

    Hallo Leute,

    ich habe wieder einmal eine Anfängerfrage glaube ich. Ich würde gerne Datensätze in meiner Datenbank zählen. Das klappt auch ganz gut. Nur wollte ich jetzt die Ausgabe so beschränken das nur die Datensätze der letzten 90 Tage gezählt werden. Aber irgendwas mache ich falsch.

    So habe ich es probiert:

    Code:
    <?php
    $sql = mysql_query("SELECT COUNT(*) AS anzahl from callsqm WHERE statusqm_id = 1 AND 
    WHERE call_date(CURDATE(),INTERVAL 90 DAY)<= date_col");
    
    $res2 = mysql_fetch_array($sql);
    echo $res2[0];
    ?>
    Das Feld call_date trägt hierbei einen Zeitstempel.
    Dabei kriege ich folgende Fehlermeldung:

    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in xxxxxxxxxxx Line 63

    Line 63 ist bei mir
    Code:
    $res2 = mysql_fetch_array($sql);
    Sobald ich in Line 62
    Code:
    AND WHERE call_date(CURDATE(),INTERVAL 90 DAY)<= date_col
    entferne geht es aber wieder einwandfrei.

    Ich kann aber keinen Fehler finden dabei. Ich bin aber auch noch sehr unwissend was die date funktion von Mysql angeht. Den quellcode zum beschränken habe ich aus der mysql referenz entnommen.

    Ich hoffe jemand von euch hat eine Idee dazu ....

    Sonnige Grüße an alle
    Xmlelb
    Zuletzt editiert von xmlelb; 13.06.2008, 12:37.
    Ich wünschte ich könnte XML

    Meine Favoriten: Clever suchen im Internet und Supersexy Logos für dein Handy

  • #2
    Originally posted by xmlelb View Post
    ...Den quellcode zum beschränken habe ich aus der mysql referenz entnommen....
    Dann solltest du das Beispiel aber auch korrekt und nicht einfach Blind übertragen
    Here is an example that uses date functions. The following query selects all rows with a date_col value from within the last 30 days:

    mysql> SELECT something FROM tbl_name
    -> WHERE DATE_SUB(CURDATE(),INTERVAL 30 DAY) <= date_col;
    Also DATE_SUB ist hierbei eine Datumsfunktion von MySQL und date_col das entsprechende Datumsfeld. Das WHERE mußt du natürlich auch weglassen wenn du es in eine bestehende WHERE-Klausel einbaust. Umgesetzt auf dein Bsp.:
    [highlight=sql]
    SELECT COUNT(*) AS anzahl
    from callsqm
    WHERE statusqm_id = 1
    AND DATE_SUB(CURDATE(), INTERVAL 90 DAY) <= call_date
    [/highlight]

    Gruß Falk
    Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

    Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

    Comment


    • #3
      Es klappt leider noch nicht ganz

      erst einmal vielen Dank für die schnelle Hilfe. Manchmal sieht man den Wald vor lauter Bäumen nicht. Peinlich, peinlich,

      Leider funktioniert es nicht so richtig.

      Das Datum ist in diesem Format abgespeichert: 11.06.2008
      Leider habe ich erst gerade gesehen das dieses Feld ein Varchar war. Das habe ich jetzt geändert.

      Aber irgendwie klappt es immer noch nicht. Er zeigt einfach alle Datensätze an die die statusqm_id=1 sind.

      So sieht mein Code jetzt aus.

      Code:
      <?php
      $sql2 = mysql_query("SELECT COUNT(*) AS anzahl from callsqm WHERE statusqm_id = 1 
      AND  DATE_SUB(CURDATE(),INTERVAL 30 DAY)<= call_date");
      $res3 = mysql_fetch_array($sql2);
      echo $res3[0];
      ?>
      Wie gesagt ich will alle Datensätze des letzen Monats bzw. der letzen 3 Monate sehen ...

      Hat einer eine Idee woran es liegen kann ???

      PS: Servertime und Datum habe ich gecheckt und die sind richtig.

      Nachtrag: Mein Datumsformat habe ich geändert. Aber es ist ganz komisch. Er zeigt mir bei 30 Tage mehr Datensätze als bei 90. Ich habe jetzt ein Feldtyp Date und folgendes Format xxxx-xx-xx
      Zuletzt editiert von xmlelb; 13.06.2008, 23:32.
      Ich wünschte ich könnte XML

      Meine Favoriten: Clever suchen im Internet und Supersexy Logos für dein Handy

      Comment

      Working...
      X