Probleme mit COUNT in einer Select abfrage
Probleme mit COUNT in einer Select abfrage
am 08.07.2007 11:12:41 von Maria Sudderman
Das funktioniert,
$sql = "select id,titel,date from tabelle WHERE date BETWEEN
DATE_SUB('".date('Y-m-d')."',INTERVAL 1 month) AND '".date('Y-m-d')."' ";
$result = mysql_query($sql);
while ($ausgabe = mysql_fetch_object($result)) {
doch jetzt wo ich die Titel zähle bekomme ich einen Error und ich weis
wirklich nicht warum "Warning: mysql_fetch_object(): supplied argument is
not a valid MySQL result resource in"
$sql = "select id,titel,count( titel)AS anzahl, date from tabelle GROUP BY
titel WHERE date BETWEEN DATE_SUB('".date('Y-m-d')."',INTERVAL 1 month) AND
'".date('Y-m-d')."' ";
$result = mysql_query($sql);
while ($ausgabe = mysql_fetch_object($result)) {
Maria
Re: Probleme mit COUNT in einer Select abfrage
am 08.07.2007 11:21:37 von Gregor Kofler
Maria Sudderman meinte:
> Das funktioniert,
>
> $sql = "select id,titel,date from tabelle WHERE date BETWEEN
> DATE_SUB('".date('Y-m-d')."',INTERVAL 1 month) AND '".date('Y-m-d')."' ";
>
> $result = mysql_query($sql);
> while ($ausgabe = mysql_fetch_object($result)) {
>
>
> doch jetzt wo ich die Titel zähle bekomme ich einen Error und ich weis
> wirklich nicht warum "Warning: mysql_fetch_object(): supplied argument is
> not a valid MySQL result resource in"
>
>
> $sql = "select id,titel,count( titel)AS anzahl, date from tabelle GROUP BY
> titel WHERE date BETWEEN DATE_SUB('".date('Y-m-d')."',INTERVAL 1 month) AND
> '".date('Y-m-d')."' ";
>
> $result = mysql_query($sql);
> while ($ausgabe = mysql_fetch_object($result)) {
>
Die WHERE-Klausel gehört *vor* die GROUP BY-Klausel. Oder du verwendest
HAVING. "Where" filtert vor der Gruppierung, "Having" nachher.
Gregor
--
http://www.gregorkofler.at ::: Landschafts- und Reisefotografie
http://www.licht-blick.at ::: Forum für Multivisionsvorträge
http://www.image2d.com ::: Bildagentur für den alpinen Raum
Re: Probleme mit COUNT in einer Select abfrage
am 08.07.2007 15:00:08 von Niels Braczek
Maria Sudderman schrieb:
> $result =3D mysql_query($sql);
Mit einer minimalen Fehlerbehandlung ermöglichst du MySQL, dir zu sagen=
,
wo's hakt:
$result =3D mysql_query($sql) or die($sql.'
'.mysql_error());
MfG
Niels
--=20
| http://www.kolleg.de =B7 Das Portal der Kollegs in Deutschland |
| http://www.bsds.de =B7 BSDS Braczek Software- und DatenSysteme |
| Webdesign =B7 Webhosting =B7 e-Commerce =B7 Joomla! Content Management =
|
------------------------------------------------------------ ------
Re: Probleme mit COUNT in einer Select abfrage
am 09.07.2007 16:06:11 von Ben Dorato
This is a multi-part message in MIME format.
--------------040104000901050803030904
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 8bit
Maria Sudderman schrieb:
> $sql = "select id,titel,count( titel)AS anzahl, date from tabelle GROUP BY
> titel WHERE date BETWEEN DATE_SUB('".date('Y-m-d')."',INTERVAL 1 month) AND
> '".date('Y-m-d')."' ";
>
in o.g. Beispiel stimmen die Select Spalten auch nicht mit den
gewünschten Aliasen überein.
Natürlich hat Gregor auch recht.
Ich denke mal so sollte das statement funktionieren:
SELECT id,titel,COUNT(titel)
AS alias_id, alias_titel, alias_anzahl
FROM tabelle
WHERE date BETWEEN DATE_SUB('".date('Y-m-d')."',INTERVAL 1 month) AND
'".date('Y-m-d')."'
GROUP BY titel
so long, Ben ;:O)
--------------040104000901050803030904
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit
Maria Sudderman schrieb:
$sql = "select id,titel,count( titel)AS anzahl, date from tabelle GROUP BY
titel WHERE date BETWEEN DATE_SUB('".date('Y-m-d')."',INTERVAL 1 month) AND
'".date('Y-m-d')."' ";
in o.g. Beispiel stimmen die Select Spalten
auch nicht mit den gewünschten Aliasen überein.
Natürlich hat Gregor auch recht.
Ich denke mal so sollte das statement funktionieren:
SELECT id,titel,COUNT(titel)
AS alias_id, alias_titel, alias_anzahl
FROM tabelle
WHERE date BETWEEN DATE_SUB('".date('Y-m-d')."',INTERVAL 1 month) AND
'".date('Y-m-d')."'
GROUP BY titel
so long, Ben ;:O)
--------------040104000901050803030904--
Re: Probleme mit COUNT in einer Select abfrage
am 09.07.2007 16:24:34 von Claus Reibenstein
Ben Dorato schrieb:
> Content-Type: text/html; charset=ISO-8859-1
Bitte kein HTML in den Newsgroups.
Gruß. Claus