Mehrere Ergebnisse aus einer Tabelle mit mysql_num_rows

Mehrere Ergebnisse aus einer Tabelle mit mysql_num_rows

am 25.07.2006 12:42:04 von Tammi Muckler

Ich möchte aus einer Tabelle verschieden Ergebnisse ausgeben.
So funktioniert es. Aber geht das auch eleganter?

$sql = "select * from lh_liste";
$result = mysql_query($sql) or die ($sql.'
'.mysql_error());
$anzahl_liste=mysql_num_rows($result);

$sql = "select * from lh_liste WHERE staat='DE'";
$result = mysql_query($sql) or die ($sql.'
'.mysql_error());
$anzahl_liste_de=mysql_num_rows($result);

$sql = "select * from lh_liste WHERE staat='AT'";
$result = mysql_query($sql) or die ($sql.'
'.mysql_error());
$anzahl_liste_at=mysql_num_rows($result);

$sql = "select * from lh_liste WHERE staat='CH'";
$result = mysql_query($sql) or die ($sql.'
'.mysql_error());
$anzahl_liste_ch=mysql_num_rows($result);


Tammi

Re: Mehrere Ergebnisse aus einer Tabelle mit mysql_num_rows

am 25.07.2006 12:47:22 von Christian Kirsch

Tammi Muckler schrieb:
> Ich möchte aus einer Tabelle verschieden Ergebnisse ausgeben.
> So funktioniert es. Aber geht das auch eleganter?
>
> $sql = "select * from lh_liste";
> $result = mysql_query($sql) or die ($sql.'
'.mysql_error());
> $anzahl_liste=mysql_num_rows($result);
>
> $sql = "select * from lh_liste WHERE staat='DE'";
> $result = mysql_query($sql) or die ($sql.'
'.mysql_error());
> $anzahl_liste_de=mysql_num_rows($result);
>
> $sql = "select * from lh_liste WHERE staat='AT'";
> $result = mysql_query($sql) or die ($sql.'
'.mysql_error());
> $anzahl_liste_at=mysql_num_rows($result);
>
> $sql = "select * from lh_liste WHERE staat='CH'";
> $result = mysql_query($sql) or die ($sql.'
'.mysql_error());
> $anzahl_liste_ch=mysql_num_rows($result);
>

ja, es geht eleganter. Im Handbuch unter dev.mysql.com/doc steht mehr
dazu, wie man WHERE-Bedingungen aufbaut, welche logischen Operatoren
es gibt usw usw. Das Handbuch enthält auch ein Tutorial, dessen
Lektüre für Anfänger lohnenswert ist.

Abgesehen davon ist PHP hier offtopic. Bitte poste hier nur SQL.

Re: Mehrere Ergebnisse aus einer Tabelle mit mysql_num_rows

am 25.07.2006 12:55:16 von Kai Ruhnau

Tammi Muckler wrote:
> Ich möchte aus einer Tabelle verschieden Ergebnisse ausgeben.
> So funktioniert es. Aber geht das auch eleganter?
>
> $sql = "select * from lh_liste";
> $result = mysql_query($sql) or die ($sql.'
'.mysql_error());
> $anzahl_liste=mysql_num_rows($result);
>
> $sql = "select * from lh_liste WHERE staat='DE'";
> $result = mysql_query($sql) or die ($sql.'
'.mysql_error());
> $anzahl_liste_de=mysql_num_rows($result);
>
> $sql = "select * from lh_liste WHERE staat='AT'";
> $result = mysql_query($sql) or die ($sql.'
'.mysql_error());
> $anzahl_liste_at=mysql_num_rows($result);
>
> $sql = "select * from lh_liste WHERE staat='CH'";
> $result = mysql_query($sql) or die ($sql.'
'.mysql_error());
> $anzahl_liste_ch=mysql_num_rows($result);

Ja, vor allem komplett ohne PHP rumgeeiere:

SELECT COUNT(*) AS anzahl_liste,
COUNT(IF(staat='DE',1,NULL)) AS anzahl_liste_de,
COUNT(IF(staat='AT',1,NULL)) AS anzahl_liste_at,
COUNT(IF(staat='CH',1,NULL)) AS anzahl_liste_ch
FROM ls_liste

Weitere Vorteile sind, dass du die Datenbank danach fragst, was du
möchtest (Die Anzahl der Datensätze) und nicht etwas anderes, woraus du
deine Größe ableitest (Alle Datensätze, die du dann zählst).

Grüße
Kai