Einträge aus Kategorien zählen

tommy1967

Mitglied
Hallo,

ich hätte mal ne Frage.

Ich habe 20 Hauptkategorien mit vielen Unterkategorien.

In jeder Unterkategorie befinden sich unterschiedlich viele Einträge.

Wie kann ich alle Einträge, aus den Unterkategorien, die einer Hauptkategorie zugeordnert sind zählen und anzeigen lassen?

Beispiel:

Hauptkategorie (hier sollen alle Einträge angezeigt werden)
Unterkategorie1 in Hauptkategorie mit 50 Einträge
Unterkategorie2 in Hauptkategorie mit 30 Einträge
Unterkategorie3 in Hauptkategorie mit 70 Einträge

In der Datenbank ist für jede Unterkategorie ein Feld "counter" in dem die Anzahl der Einträge steht. Wie kann ich die Einträge aus den Unterkategorien zusammenzählen und dann auf der Hauptseite neben den Links der Hauptkategorien anzeigen lassen.

So schaut die Datenbanktabelle aus.

cat
titel
beschreibung
counter
parentid

Wobei parentid mit dem Wert 0 in der Datenbank immer eine Hauptkategorie ist.

Ich hoffe diese Informationen reichen für eine kleine Hilfestellung aus.
 
Vielleicht so:
PHP:
$query = mysql_query('SELECT `titel`, `beschreibung` FROM `table` WHERE `parentid` = 0');
echo '<dl>';
while ($array = mysql_fetch_array($query)) {
	echo "<dt>$titel – $beschreibung'</dt>";
	$subquery = mysql_query('SELECT `titel`, `beschreibung` FROM `table` WHERE `parentid` = '.$array['id']);
	while ($subarray = mysql_fetch_array($subquery)) {
		echo "<dd>$titel – $beschreibung</dd>";
	}
}
echo '</dl>';
Deine Einträge müssen natürlich noch eine ID haben – falls die in cat gespeichert ist, musst du das Script halt noch entsprechend anpassen.
 
Ich glaube du hast mich falsch verstanden.

Ich meinte mit Einträge die Gesammtzahl.

Also, wenn in den Unterkategorien einer Hauptkategorie 456 Einträge sind, dann möchte ich diese Zahl neben dem Link der Hauptkategorie anzeigen lassen.

In dieser Kategorie befinden sich 456 Einträge.

Oder habe ich dich falsch verstanden?
 
Zuletzt bearbeitet:
Du musst eigentlich nur die Einträge zählen:
PHP:
$hauptID = 0; // ID der Hauptkategorie

// ID der Unterkategorie auslesen
$query = mysql_query("SELECT `id` FROM `table_sub_cat` WHERE `parentid` = '$hauptID' LIMIT 1");
$res = mysql_fetch_array($query);

// Eintraege in der Unterkategorie zaehlen
$entryQuery = mysql_query("SELECT COUNT(*) AS summeEntries FROM `table_entries` WHERE `parentid` = '".$res['id']."'");
$entryRes = mysql_fetch_array($entryQuery);
$anzEntries = $entryRes['summeEntries']; // Summe der Eintraege in der Unterkategorie
 
Funktioniert leider nicht.

Also die Anzahl der Einträge aus den Unterkategorien sind in der Datenbank in einer Spalte "counter" hinterlegt.

Ich müsste doch jetzt nur die Einträge (aus der Spalte "counter") zusammenzählen und den jeweiligen Hauptkategorien zuweisen.

Hauptkategorie 1 (um diese Anzeige geht es mir) sollte 88 Einträge zeigen
Unterkategorie 1/1 mit 28 Einträge (in der Spalte "counter hinterlegt)
Unterkategorie 1/2 mit 20 Einträge (in der Spalte "counter hinterlegt)
Unterkategorie 1/3 mit 40 Einträge (in der Spalte "counter hinterlegt)

Danke schon mal für die guten Ansätze. Und Sorry, ich bin nicht so ganz Fit in diesen Sachen.
 
Oh das mit der "counter" Spalte hab ich leider überlesen.

Ja du musst einfach deine Unterkategorien auslesen und die Werte in der "counter" Spalte zusammenzählen.
 
So zählst du alle Inhalte der Spalter "counter" bei denen die WHERE Bedinung zutrifft zusammen:

PHP:
$hauptID = 1; // ID der Hauptkategorie

// ID der Unterkategorie auslesen
$query = mysql_query("SELECT SUM(counter) AS summeEntries FROM `table_sub_cat` WHERE `parentid` = '$hauptID'");
$res = mysql_fetch_array($query);
$anzEntries = $res['summeEntries'];// Summe der Eintraege in den Unterkategorien
 
Zurück