Kategori liste
Hej.Jeg har et stykke kode som viser en liste over alle kategorierne i min MYSQL database (jeg bruger PHP5). Med denne kode får jeg udskrevet alle hovedkategorierne og underkategorierne på en gang.
Det tager lang tid at udføre for serveren og der slet ikke brug for at få udskrevet alle kategorierne på én gang.
Jeg ønsker kun at få hovedkategorierne vist samt underkategorie(r) til den hovedkategori man klikker.
---------------------------------
- Eksempel på nuværende output: -
---------------------------------
Tøj
...T-shirts
...Jakker
......Læderjakker
Køkken
...Kopper
...Tallerkner
Software
...Linux
...Windows Vista
------------------
- Ønsket output: -
------------------
Tøj
...T-shirts
...Jakker
......Læderjakker
Køkken
Software
------------------------
- Categories.class.php -
------------------------
<?php
class Categories {
protected $dbname = 'ss4';
protected $dbhost = 'localhost';
protected $dbuser = 'root';
protected $dbpass = '';
protected $dbport = '';
protected $children = 0;
protected $no_children = array();
function show_categories($parent_id=0,$level=0,$start=0) {
echo '<ul>';
$this->build_tree($parent_id,$level,$start);
echo '</ul>';
}
function build_tree($parent_id=0,$level=0,$start=0) {
$mysqli = mysqli_connect($this->dbhost, $this->dbuser, $this->dbpass, $this->dbname);
$categories_query = mysqli_query($mysqli, "SELECT * FROM categories WHERE categories_parent = $parent_id");
while($row = mysqli_fetch_assoc($categories_query)) {
if ($level > 0) {
echo '<li class="categories_child">';
print str_repeat(' ',$level);
} else {
echo '<li class="categories_parent">';
}
echo '<a href="productlisting.php?cat_id='.$row[categories_id].'">'.$row[categories_name].'</a>';
echo '</li>';
$this->build_tree($row[categories_id],$level+1,$start);
}
}
}
?>
