PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks. |
 |

18-09-2003, 18:01
|
el_espiritu
Junior Member
|
|
Registriert seit: May 2003
Beiträge: 170
|
|
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.
|

18-09-2003, 18:05
|
mrhappiness
PHP Guru
|
|
Registriert seit: Oct 2002
Beiträge: 14.890
|
|
hat die äußere schleife nen tieferen sinn?
wie oft wird die durchlaufen?
neunmal?
__________________
Ich denke, also bin ich. - Einige sind trotzdem...
|

18-09-2003, 18:14
|
el_espiritu
Junior Member
|
|
Registriert seit: May 2003
Beiträge: 170
|
|
Zitat:
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.
|

18-09-2003, 18:19
|
mrhappiness
PHP Guru
|
|
Registriert seit: Oct 2002
Beiträge: 14.890
|
|
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
__________________
Ich denke, also bin ich. - Einige sind trotzdem...
|

18-09-2003, 18:22
|
el_espiritu
Junior Member
|
|
Registriert seit: May 2003
Beiträge: 170
|
|
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 = 2
Thanx!
|

18-09-2003, 18:58
|
mrhappiness
PHP Guru
|
|
Registriert seit: Oct 2002
Beiträge: 14.890
|
|
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
__________________
Ich denke, also bin ich. - Einige sind trotzdem...
|

18-09-2003, 19:16
|
Wurzel
Master  
|
|
Registriert seit: Jul 2002
Ort: double-u-upper-valley
Beiträge: 7.477
|
|
OffTopic: er will bestimmt auf nummer sicher gehen
|

18-09-2003, 19:17
|
mrhappiness
PHP Guru
|
|
Registriert seit: Oct 2002
Beiträge: 14.890
|
|
OffTopic: tut er aber nicht, dann müsste er nämlich noch prüfen, was drinsteht 
__________________
Ich denke, also bin ich. - Einige sind trotzdem...
|

18-09-2003, 19:18
|
Wurzel
Master  
|
|
Registriert seit: Jul 2002
Ort: double-u-upper-valley
Beiträge: 7.477
|
|
OffTopic:
nur versuch macht kluch
|

19-09-2003, 06:06
|
el_espiritu
Junior Member
|
|
Registriert seit: May 2003
Beiträge: 170
|
|
Die Abfrage gibt mir die Anzahl der Datensätze mit der status_id "2" in einem bestimmten Zeitraum.
|

19-09-2003, 07:55
|
mrhappiness
PHP Guru
|
|
Registriert seit: Oct 2002
Beiträge: 14.890
|
|
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)
__________________
Ich denke, also bin ich. - Einige sind trotzdem...
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Themen-Optionen |
|
Thema bewerten |
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
|
PHP News
|