hallo zusammen,
ich habe folgende tabelle für einen kleinen shop
CREATE TABLE `kategorie` (
`id` int(11) NOT NULL auto_increment,
`tiefe` int(11) NOT NULL default '0',
`zeiger` int(11) NOT NULL default '0',
`anlagedatum` int(11) NOT NULL default '0',
`aktiv` int(11) NOT NULL default '0',
`beschreibung` varchar(100) NOT NULL default '',
PRIMARY KEY (`id`)
) TYPE=MyISAM AUTO_INCREMENT=8 ;
INSERT INTO `kategorie` VALUES (1, 1, 0, 0, 1, 'Monitor');
INSERT INTO `kategorie` VALUES (2, 1, 0, 0, 1, 'Gehäuse');
INSERT INTO `kategorie` VALUES (3, 1, 0, 0, 1, 'Eingabegeräte');
INSERT INTO `kategorie` VALUES (4, 2, 1, 0, 1, 'CRT');
INSERT INTO `kategorie` VALUES (5, 2, 1, 0, 1, 'TFT');
INSERT INTO `kategorie` VALUES (6, 1, 0, 0, 1, 'Tastatur');
INSERT INTO `kategorie` VALUES (7, 2, 4, 0, 1, '17');
die spalte tiefe ist die verschachtelungstiefe, die spalte zeiger zeigt auf kategorie.id
mit folgendem codeschnipsel wollte ich nun ein menu stricken, das sich aus- und einklappt, aber es klappt nicht so, wie ich das will
viellleicht kann mir hier einen die eingebung ins hirn nageln, wo mein denkfehler ist.
vorab many thx
megle
PHP-Code:
<?
include "zentrale/head.php";
?>
</head>
<body class="show">
Verlinkung<br><br><br>
<a href="abfragen.php">Abfragen</a><br><br>
<?
$aktTiefe = $_GET[aktTiefe];
$aktId = $_GET[id];
if( !isset($aktTiefe) ){
$aktTiefe = 1;
}
function unterKategorie(){
global $MySql_kategorie , $aktId , $aktTiefe;
$neueTiefe = func_get_arg(0);
$neueId = func_get_arg(1);
if ( $aktTiefe == $neueTiefe && $aktId == $neueId ) {
echo "abfrage<br><br>";
$sqlbefehlunter = "SELECT * FROM $MySql_kategorie ";
$sqlbefehlunter .= "WHERE zeiger = $neueId ";
$sqlbefehlunter .= "AND tiefe = $neueTiefe ";
$abfrageunter = mysql_query($sqlbefehlunter);
$anzahlunter = mysql_num_rows($abfrageunter);
for( $x = 0 ; $x < $anzahlunter ; $x++ ){
$idunter = mysql_result( $abfrageunter , $x, "id");
$naechsteTiefe = mysql_result( $abfrageunter , $x, "tiefe");
$naechsteTiefe++;
$zeigerunter = mysql_result( $abfrageunter , $x, "zeiger");
$beschreibungunter = mysql_result( $abfrageunter , $x, "beschreibung");
$leerraum = "";
for( $l = 0 ; $l < $naechsteTiefe ; $l++ ){
$leerraum = " ";
}
print "$leerraum<a href='abfragen.php?id=" . $idunter . "&aktTiefe=" . $naechsteTiefe . "'>" . $beschreibungunter . "</a><br><br>\n\n";
unterKategorie( $naechsteTiefe , $idunter );
echo "aufruf " . $naechsteTiefe . "<br><br>";
}
}
}
$sqlbefehl = "SELECT * FROM $MySql_kategorie ";
$sqlbefehl .= "WHERE tiefe = 1 ";
$sqlbefehl .= "ORDER BY beschreibung ASC ";
$abfrage = mysql_query($sqlbefehl);
$anzahl = mysql_num_rows($abfrage);
for( $i = 0 ; $i < $anzahl ; $i++ ){
$id = mysql_result( $abfrage , $i, "id");
$naechsteTiefe = mysql_result( $abfrage , $i, "tiefe");
$naechsteTiefe++;
$zeiger = mysql_result( $abfrage , $i, "zeiger");
$beschreibung = mysql_result( $abfrage , $i, "beschreibung");
$leerraum = "";
for( $l = 0 ; $l < $tiefe ; $l++ ){
$leerraum = " ";
}
print "$leerraum<a href='abfragen.php?id=" . $id . "&aktTiefe=" . $naechsteTiefe . "'>" . $beschreibung . "</a><br><br>\n\n";
unterKategorie( $naechsteTiefe , $id );
echo "aufruf " . $naechsteTiefe . "<br><br>";
}
print "</body>\n";
print "</html>\n";
?>