phpbar.de logo

Mailinglisten-Archive

[php] Rekursive Abfragen für Kategorien

[php] Rekursive Abfragen für Kategorien

Trawell Mildor trawell.mildor at gmail.com
Di Okt 11 18:02:53 CEST 2011


Guten Abend zusammen.

hab mich mal mit rekursiven Abfragen beschäftigt..und ja ich weiss..Nestet
Sets sind sicher besser :)

Also..ich möchte einen Kategorienbaum mit drei Ebenen

und hab dazu folgendes Script gebastelt..so zum Verständnis..und würd gern
Meinungen von Profis dazu lesen :)

Das Script gibt nur die Kategorien in der entsprechenden Reihenfolge
aus...also ohne Menü usw.

Ich bin PHP Neuling und über Tips immer aufgeschlossen.

Gruss, Trawell


<?php require_once('../Connections/conDB.php'); ?>
<?php
mysql_select_db($database_conDB, $conDB);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "
http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Unbenanntes Dokument</title>
</head>

<body>
<?php

/* Erste Abfrage mit Parent ID = 0 , also Hauptkategorien */
$query_maincategories = "SELECT * FROM kategorien WHERE id_parent = 0 ORDER
BY id_kategorie ASC";
$maincategories = mysql_query($query_maincategories, $conDB) or
die(mysql_error());
$row_maincategories = mysql_fetch_assoc($maincategories);
do {
echo '<h1>'.$row_maincategories['kategorie'].'</h1><br />';
$zahl = $row_maincategories['id_kategorie'];
 /* Zweite Abfrage mit Parent ID = aus der ersten Abfrage von id_kategorie
*/
$query_subcategories = "SELECT * FROM kategorien WHERE id_parent = $zahl
ORDER BY id_kategorie ASC";
$subcategories = mysql_query($query_subcategories, $conDB) or
die(mysql_error());
$row_subcategories = mysql_fetch_assoc($subcategories);
do {
echo '<h2>'.$row_subcategories['kategorie'].'</h2><br />';
$zahl = $row_subcategories['id_kategorie'];
 /* Dritte Abfrage mit Parent ID = aus der zweiten Abfrage von id_kategorie
*/
$query_subsubcategories = "SELECT * FROM kategorien WHERE id_parent = $zahl
ORDER BY id_kategorie ASC";
$subsubcategories = mysql_query($query_subsubcategories, $conDB) or
die(mysql_error());
$row_subsubcategories = mysql_fetch_assoc($subsubcategories);
do {
if (isset($row_subsubcategories['kategorie']))
{
echo '<h3>'.$row_subsubcategories['kategorie'].'</h3><br />';
}
}
while ($row_subsubcategories = mysql_fetch_assoc($subsubcategories));
}
while ($row_subcategories = mysql_fetch_assoc($subcategories));
}
while ($row_maincategories = mysql_fetch_assoc($maincategories));

?>
</body>
</html>
<?php
mysql_free_result($maincategories);
mysql_free_result($subcategories);
mysql_free_result($subsubcategories);
?>

php::bar PHP Wiki   -   Listenarchive