Fehler in MySQL-Abfrage...

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

  • mrhappiness
    antwortet
    nein, die abfrage liefert dir die spalte status_id mit dem wert 2 zurück und zwar so oft wie ein eintrag mit status_id 2 innerhalb eines bestimmten zeitraums vorkommt.
    daraus ermittelst du die anzahl

    PHP-Code:
    $sql='SELECT COUNT(status_id) anzahl
    FROM tagesstatus 
    WHERE 
      tag_stoerstart_zeit >= DATE_SUB(NOW(), INTERVAL '
    .$zeit.' DAY) 
      AND 
      status_id = 2'
    ;
    $result=mysql_query($sql) or die(mysql_error());
    $anzahl=mysql_fetch_assoc($result);
    $anzahl=$anzahl['anzahl'];
    echo 
    $anzahl
    so isses geringfügig kürzer, schneller und vor allem übersichtlicher (imho)

    Einen Kommentar schreiben:


  • el_espiritu
    antwortet
    Die Abfrage gibt mir die Anzahl der Datensätze mit der status_id "2" in einem bestimmten Zeitraum.

    Einen Kommentar schreiben:


  • Wurzel
    antwortet
    OffTopic:
    nur versuch macht kluch

    Einen Kommentar schreiben:


  • mrhappiness
    antwortet
    OffTopic:
    tut er aber nicht, dann müsste er nämlich noch prüfen, was drinsteht

    Einen Kommentar schreiben:


  • Wurzel
    antwortet
    OffTopic:
    er will bestimmt auf nummer sicher gehen

    Einen Kommentar schreiben:


  • mrhappiness
    antwortet
    wobei sich mir der sinn der abfrage nicht gänzlich erschließt

    du lässt dir ne spalte zurückgeben, deren wert du bereits kennst

    Einen Kommentar schreiben:


  • el_espiritu
    antwortet
    Stimmt, so geht's gleich viel besser:

    PHP-Code:
    SELECT status_id FROM tagesstatus WHERE tag_stoerstart_zeit >= DATE_SUB(NOW(), INTERVAL '$zeit' DAY) AND status_id 
    Thanx!

    Einen Kommentar schreiben:


  • mrhappiness
    antwortet
    ohne dir zu nahe treten zu wollen: die idee ist scheiße

    und sie ist sogar richtig scheiße, da du die ergebnisse der äußeren abfrage nirgendwo verwendest

    oder?!


    bedingungen werden übrigens mit AND verknüpft

    http://www.mysql.com/doc/de

    Einen Kommentar schreiben:


  • el_espiritu
    antwortet
    Original geschrieben von mrhappiness
    hat die äußere schleife nen tieferen sinn?
    Ja! Die brauche ich um die Abfrage nach dem Datum zu bekommen. Die Schleife wird so oft durchlaufen wie viele Datensätze in diesem Zeitraum vorhanden sind.
    Ich wusste nicht wie man in einer SQL Abfrage die Abfrage des Datum und die "WHERE status_id = 2" unterbringt.....(geht das überhaupt?) Deswegen hab ich das einfach aufgeteilt.

    Einen Kommentar schreiben:


  • mrhappiness
    antwortet
    hat die äußere schleife nen tieferen sinn?

    wie oft wird die durchlaufen?
    neunmal?

    Einen Kommentar schreiben:


  • el_espiritu
    hat ein Thema erstellt Fehler in MySQL-Abfrage....

    Fehler in MySQL-Abfrage...

    PHP-Code:
    <?php
    $zeit 
    date("t");  // Liest Anzahl der Tage des aktuellen Monats aus (28, 29, 30 oder 31)
    $anzahl 0;

    $abfrage mysql_query("SELECT status_id FROM tagesstatus WHERE tag_stoerstart_zeit >= DATE_SUB(NOW(), INTERVAL '$zeit' DAY)");
    while (
    $data mysql_fetch_array($abfrage))
    {
        
    $abfrage2 mysql_query("SELECT status_id FROM tagesstatus WHERE status_id = 2");
        while (
    $data mysql_fetch_array($abfrage2))
        {
            
    $anzahl++;
        }
    }
    echo 
    $anzahl;
    exit;
    ?>
    Wo liegt der Fehler in meiner Abfrage?? Ich bekomme als Ergebnis 45, obwohl nur 5 Datensätze mit der status_id "2" in der Datenbank sind.
Lädt...
X