URL: https://www.overclockers.at/coding-stuff/verschachtelte_schleife_80911/page_2 - zur Vollversion wechseln!
na leider nicht - wollte nur den blick über den tellerrand erleichtern. einfach weil mysql zwar überrall gerne verwewndet wird, aber einige gehörige defizite aufweist. - aber du hast schon recht - das machen wir bei gelenheit in einem eigenen thread.
ich hab unlängst so ein menü gemacht. in mysql hab ich für das menü nur einen table. id, link, text, subs
der code funzt, allerdings weiß ich nciht, wie gut er ist *ggg*######################
## Aufbau des Menüs ##
######################
## Menü aus DB holen ##
$query = 'SELECT m.menu_id, m.text, m.seiten_id, m.subs, g.farbe
FROM menu AS m LEFT JOIN gruppen AS g USING (gruppen_id) ORDER BY m.text ASC';
$result = mysql_query ($query) OR die (mysql_errno () . ': ' . mysql_error ());
while ($zeile = mysql_fetch_assoc ($result)) {
$menu[] = $zeile;
}
## Submenüs extrahieren, aus restlichem Menü löschen und Menü neu anordnen ##
## <Title>-Wert der Seite extrahieren ##
## Index-Link aus Menü entfernen ##
for ($i = 0; $i < count ($menu); $i++) {
if ($menu[$i][seiten_id] == $seite) {
$title_text = $menu[$i][text];
}
if ($menu[$i][subs] != '') {
$temp1 = explode ("|", $menu[$i][subs]);
for ($j = 0; $j < count ($temp1); $j++) {
if ($temp1[$j] != '') {
$subs_row[] = $temp1[$j];
}
}
}
if ($menu[$i][seiten_id] == FIRSTMAINPAGE) {
unset ($menu[$i]);
}
}
$subs_row = array_unique ($subs_row);
sort ($subs_row);
for ($i = 0; $i < count ($menu); $i++) {
for ($j = 0; $j < count ($subs_row); $j++) {
if ($menu[$i][menu_id] == $subs_row[$j]) {
$subs[$menu[$i][menu_id]] = $menu[$i];
unset ($menu[$i]);
}
}
}
unset ($temp1);
while (count ($menu) > 0) {
$temp1[] = array_shift ($menu);
}
$menu = $temp1;
unset ($temp1);
## Menü aufbauen ##
$menu_text = '';
for ($i = 0; $i < count ($menu); $i ++) {
$menu_text .= '<li><a href="' . $PHP_SELF . '?seite=' . $menu[$i][seiten_id] . '"><font color="#' .
$menu[$i][farbe] . '">' . $menu[$i][text] . '</font></a></li>' . "\n";
if ($menu[$i][subs] != '') {
$menu_text .= "<ul>\n";
$temp1 = explode ("|", $menu[$i][subs]);
for ($j = 0; $j < count ($temp1); $j++) {
$menu_text .= '<li><a href="' . $PHP_SELF . '?seite=' . $subs[$temp1[$j]][seiten_id] . '"><font color="#' .
$subs[$temp1[$j]][farbe] . '">' . $subs[$temp1[$j]][text] . '</font></a></li>' . "\n";
unset ($temp1);
}
$menu_text .= "</ul>\n";
}
}
MIK
p.s.: über verbesserungs- und optimierungsvorschläge hätte ich ncihts einzuwenden 
edit: damit läßt sich nur eine ebene tief gehen. ich brauch eigentlich nicht mehr. werd aber vermutlich, wenn ich wieder zeit habe, es so umschreiben, daß man beliebig tief gehen kann.
raus mit dem "kot"!Zitat von kleinerChemiker[...]
ich hab des schon öfters gebraucht - die arbeit tät ich auf jeden fall php überlassen, dh. alle daten in ein array und das dann durchhackln 
<moderate>
schön sprechen
</moderate>
got wortspielZitat von atrox<moderate>
schön sprechen
</moderate>
:
) mal bissal schmäler...
overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2026