phpbar.de logo

Mailinglisten-Archive

[php] (1/2 OT: MySQL) Anzahl der =?iso-8859-1?Q?Eintr=E4ge=2E=2E=2E?=

[php] (1/2 OT: MySQL) Anzahl der =?iso-8859-1?Q?Eintr=E4ge=2E=2E=2E?=

Oliver Kummerow naklar_(at)_altavista.net
Tue, 27 Jul 1999 07:23:59 +0200


Hallo Thomas,

wenn ich Dich richtig verstehe, ist folgendes die Antwort auf Deine
Frage:

> Es müsste irgendwie mit COUNT() und GROUP BY() gehen, aber da check ich
> nicht ganz durch... ;(

Stimmt:

$query1 = "Select count(kategorie) as countkat from tabelle group by
kategorie order by kategorie";
$result1 = mysql_query ( $query1 );
$rowcount1 = mysql_num_rows ( $result1 );
for ( $i=0; $i < $rowcount1; $i++ ) 
{	$row1 = mysql_fetch_object ( $result1 );
	$katcount [$i] = $row1->countkat;
}

$query2 = "SELECT DISTINCT kategorie FROM tabelle ORDER BY kategorie ";
$result2 = mysql_query ( $query2 );
$rowcount2 = mysql_num_rows ( $result2 );
for ( $i=0; $i < $rowcount2; $i++ ) 
{	$row2 = mysql_fetch_object ( $result2 );
	echo katcount [$i];
	echo $row2->kategorie;
}

... gibt Anzahl (aus dem in der vorherigen Abfrage gebildeten Array) und
aus der laufenden Abfrage zusammen mit der Kategorie aus. Du kannst das
noch modifizieren, indem Du Deine Tabelle Kategorie integrierst.

Wann funktioniert das nicht: Wenn in einer Multiuserumgebung eine extrem
hohe Updatefrequenz herrscht. Dann sind nämlich die Ergebnisse von
query2 bei ihrer Ausführung schon falsch. Ist aber eher selten, daß
laufend neue Kategorien erzeugt werden.

 
> Es müsste ja eigentlich irgendwie gehen, das ich alles in ein query packen
> kann, oder?
> 

Glaube nein, da mysql keine Subselects Views und Stored Procedures
zuläßt. Insofern sind nur iterierende Verfahren (Programmiersprache/PHP)
möglich. Durch diese Unzulaenglichkeit ist Deine Frage auch nicht OT ;-)
Falls Du es anders machen willst, nimm am besten Oracle, das ist hier
letztens empfohlen worden, dann ist sie aber wieder OT ;-)


Mit freundlichen Grüßen,
Oliver Kummerow
email: naklar_(at)_altavista.net


php::bar PHP Wiki   -   Listenarchive