Mailinglisten-Archive |
> ////// Code-Beginn
>
> $sti_ges = mysql_num_rows(db("SELECT logo1 FROM eeshq_shirts"))
> + mysql_num_rows(db("SELECT logo2 FROM eeshq_shirts"))
> + mysql_num_rows(db("SELECT logo3 FROM eeshq_shirts"));
>
> ///// Code-Ende
>
> Das Problem ist IMHO die Funktion mysql_num_rows. Aber mir ist
> keine andere Funktion bekannt, mit welcher ich die _ausgefüllten_
> Felder in einer Spalte zählen könnte.
>
> Weiss jemand eine Lösung oder eine Anregung oder vielleicht ein
> Link?
>
mysql_num_rows is schon ok - der gibt Dir aus, wieviele Zeilen dein Ergebnis
hat - brauchst bloss dafür zu sorgen, dass dein Ergebnis nur die Zeilen
enthält die dich interessien:
select logo1 from eeshq_shirts where logo1 is not null;
sollte Dich da wohl weiterbringen ;-)
(vorausgesetzt die leeren Einträge sind wirklich null und nicht etwa ''
im übrigen glaube ich aber dass der mysql-server weniger belastet wird, wenn
Du ihn nur
select count(logo1) from eeshq_shirts where logo1 is not null;
fragst - dann braucht er wohl nicht alle Inhalte von logo1 anzuschauen,
sondern nur zusammenzuzählen welche er findet, die nicht null sind.
wo ich jetzt gerade aber auch etwas scheiter: ganz fein wäre natürlich was
wie
select count(logo1),count(logo2),count(logo3) from eeshq_shirts;
um alle auf einmal abzufragen. Nur wirds dann nix mit dem where logo1 is not
null, logo2 is not null - er soll ja wohl auch ergebnisse ausgeben bei denen
logo1 null ist, logo2 aber nicht. Weiss jemand ob man da mit ifnull
irgendwas basteln kann?
geht da irgendwas wie:
select count(ifnull(logo1))
??
--
Gruß
Mike Beck
mike.beck_at_ibmiller.de
php::bar PHP Wiki - Listenarchive