Navigation: Kategorien, Unterkategorie

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Navigation: Kategorien, Unterkategorie

    Ich arbeite an einen kleinen Shop und bekomme einfach nicht meine Navigation mit den Kategorien hin.

    Hier der Link: Lego-Shop

    Links ist die Navigation mit den Hauptkategorien.

    Wenn ich jetzt auf eine Hauptkategorie klicke, dann erscheinen entweder rechts im Hauptfenster die Artikel oder die Unterkategorie/n.

    Das geht soweit, aber nur wenn es eine Unterkategorie gibt.

    Ich möchte es so haben:

    Ich klicke auf Test 1. Dann kommen rechts im Hauptfenster die Unterkategorien mit Test 2. Wenn ich jetzt auf Test 2 klicke, dann zeigt er mit die Unterkategorien von Test 2 an. Das soll es auch. Aber ich möchte das dann die Unterkategorien 1 weiter nach rechts rücken. Das bekomme ich nicht hin. Jede Unterkategorie um 1. nach Rechts rücken.

    Wichtig ist, das immer nur beim klick eine weitere Unterkategorie angezeigt wird und nicht gleich alle Unterkategorien auf ein mal automatisch ausgeklappt werden.

    Hier noch mal Bilder zur Verdeutlichung:

    1. Bild
    Startseite mit den Hauptkategorien als Navigation



    2. Bild
    Bei klick auf Test 1, zeigt er mir die Unterkategorien an. Hier gibt es nur eine Unterkategorie nämlich Test 2.



    3. Bild
    So will ich es nicht haben. Bei klick auf Test 2, zeigt er mir die Unterkategorien von Test 2 auf der gleichen Stelle an.



    4. Bild (habe ich zur verdeutlichung bearbeitet)
    So möchte ich es haben. Bei klick auf Test 2 soll daneben die Unterkategorien von Test 2 erscheinen.



    Mein Code:
    1. Codezeile: $id wird von der Hauptkategorie mitgesendet.
    Code:
    $id = $_GET['id'];
    
    $result = mysql_query("SELECT * FROM ".$sql_prefix."_category WHERE subcategory='$id'");
    $count = mysql_num_rows($result);
    
    if($count > 0)
    {
    	echo("
    	<html>
    
    	<head>
    
    	</head>
    
    	<body>
    
    	<div align=\"center\">
    
    	<table align=\"left\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"20%\">
    	<tr>
    	<td class=\"links\" valign=\"top\">
    	<div class=\"naviueberschrift\">Unterkategorien</div>
    	<ul class=\"menue\">
    	");
    
    	while($row = mysql_fetch_array($result))
    	{
    		echo("<li><a title=\"$row[category]\" href=\"index.php?site=category&id=$row[id]\">$row[category]</a></li>");
    	}
    
    	echo("
    	</ul>
    	</td>
    	</tr>
    	</table>
    
    	</div>
    
    	</body>
    
    	</html>
    	");
    }
    else
    {
    Artikel anzeigen ......
    Datenbankstruktur:

    id = fortlaufend, auto_increment

    category = Der Name der Kategorie

    subcategory = Unterkategorie von (0 = eine Hauptkategorie,1 = Unterkategorie von der Kategorie mit der id 1 usw.)



    Ich hoffe ich habe nichts vergessen, es ist verständlich und jemand kann mir behilflich sein. Stelle den Shop natürlich hier zur Verfügung.
    Zuletzt geändert von Didito; 16.04.2016, 21:14.

  • #2
    Du kannst zum Beispiel in einer Schleife eine Query ausführen, die dir jeweils alle Elemente mit der gesuchten subcategory (dem gleichen Vorfahren) liefert. Dabei setzt du die gesuchte subcategory für einen neuen Durchlauf jeweils auf die subcategory des Elements, dessen ID die vorherige subcategory ist. Erreichst du ein Element mit subcategory 0, bist du auf der obersten Ebene angelangt und hast alle Daten ermittelt. Der Startwert ist die subcategory des Elements mit der via GET überlieferten ID.

    Dann musst du nur noch (und falls vorhanden) die Daten um die Elemente erweitern, die als subcategory die via GET überlieferte ID haben (also die direkten Nachfahren des aktiven Elements).

    Die mysql-Erweiterung ist veraltet und ist ab PHP 7 nicht mehr in PHP enthalten. Nutze mysqli oder PDO.

    Kommentar

    Lädt...
    X