splat
Erfahrenes Mitglied
Hi,
ich bin gerade am basteln einer Funktion zum generieren einer Preisliste.
Es sollen hierbei sämtliche Artikel aus allen Katergorien und Unterkategorien ausgegeben werden. Die Abfrage funktioniert dank einem Freund jetzt auch wunderbar
Das Problem ist jetzt nur: Durch die lange Liste verliert man schnell den Überblick. Die Haupt- sowie die Unterkategorien werden nicht unterschieden und sehen gleich aus.. diese würde ich gerne unterschiedlich kennzeichnen. Entweder farbig, oder eben durch einrücken.. das wäre sogar noch besser.
Wie könnte man so etwas denn realisieren?
Die Idee war zuerst, eine Variable $level mitlaufen zu lassen, die bei jedem erneuten Aufruf der Funktion um 1 erhöht wird. Das funktioniert aber so leider auch nicht..
Hat jemand noch eine Idee oder einen Denkanstoss wie man so etwas vielleicht noch lösen könnte?
Die Datenbank sieht grob folgendermaßen aus:
Es gibt eine Kategorie "Home" mit der id 1. Alle Hauptkategorien haben unter parent_id eine 1 eingetragen. Einige Hauptkategorien haben mehrere Unterkategorien/Ebenen, andere haben keine Unterkategorien, sondern enthalten direkt die Artikel. Wie bereits erwähnt: Die Abfrage funktioniert einwandfrei, es geht jetzt nur noch um die Kennzeichnung der verschiedenen Ebenen.
preisliste.php
Ich bin für jeden Ratschlag dankbar
Gruß,
Marc
ich bin gerade am basteln einer Funktion zum generieren einer Preisliste.
Es sollen hierbei sämtliche Artikel aus allen Katergorien und Unterkategorien ausgegeben werden. Die Abfrage funktioniert dank einem Freund jetzt auch wunderbar
Das Problem ist jetzt nur: Durch die lange Liste verliert man schnell den Überblick. Die Haupt- sowie die Unterkategorien werden nicht unterschieden und sehen gleich aus.. diese würde ich gerne unterschiedlich kennzeichnen. Entweder farbig, oder eben durch einrücken.. das wäre sogar noch besser.
Wie könnte man so etwas denn realisieren?
Die Idee war zuerst, eine Variable $level mitlaufen zu lassen, die bei jedem erneuten Aufruf der Funktion um 1 erhöht wird. Das funktioniert aber so leider auch nicht..
Hat jemand noch eine Idee oder einen Denkanstoss wie man so etwas vielleicht noch lösen könnte?
Die Datenbank sieht grob folgendermaßen aus:
Code:
categories:
id | parent_id | name
products:
id | name
products_categories:
product_id | category_id
Es gibt eine Kategorie "Home" mit der id 1. Alle Hauptkategorien haben unter parent_id eine 1 eingetragen. Einige Hauptkategorien haben mehrere Unterkategorien/Ebenen, andere haben keine Unterkategorien, sondern enthalten direkt die Artikel. Wie bereits erwähnt: Die Abfrage funktioniert einwandfrei, es geht jetzt nur noch um die Kennzeichnung der verschiedenen Ebenen.
preisliste.php
PHP:
function generiere_preisliste($category_id) {
$sql= "SELECT id, parent_id, name AS kategoriename FROM categories WHERE parent_id = ".$category_id." AND id != ".$category_id.";
$result = db_query($sql);
if(mysql_num_rows($result) > 0) {
while(FALSE !== ($array = mysql_fetch_array($result, MYSQL_ASSOC))) {
echo '<p>'.$array['kategoriename'].'</p>';
$sql_2 = "SELECT p.artikelnr, p.name AS produktname, p.preis FROM products_categories AS pc, products AS p WHERE pc.category_id = ".$array['id']." AND pc.product_id = p.id;
$result_2 = db_query($sql_2);
while(FALSE !== ($array_2 = mysql_fetch_array($result_2, MYSQL_ASSOC))) {
echo '<p>'.$array_2['artikelnr'].' / '.$array_2['produktname'].' / '.$array_2['preis'].'</p>
}
generiere_preisliste($array['id']);
}
}
}
Ich bin für jeden Ratschlag dankbar
Gruß,
Marc