Hallo samteam,
while($zeile = mysql_fetch_array($menue_select))
{
switch ($zeile["menuid"])
{
case 2: $menue_id = "2";
echo "<td><a href="#?menue_id=".$menue_id.">
".$zeile["menu"]."</a></td>";
break;
case 3: $menue_id = "3";
echo "<td><a href="#?menue_id=".$menue_id.">
".$zeile["menu"]."</a></td>";
break;
default:
echo "<td><a href="#?menue_id=".$menue_id.">
".$zeile["menu"]."</a></td>";
}
}
So das ist mein gekürztes Script, beim ausführen sehe ich dann bei MouseOver das der wert menue_id immer den Wert von case 2: hat aber die anderen werden ignoriert.
Wenn ich nur mit einem Case oder if-Abfrage arbeite klappt alles
ich brauch für jede ausgegeben Variable $zeile["menu"] die dazugehörige Variable menu_id
Verstanden?
Naja, so halb. Dein switch-statement ist syntaktisch ok, daran liegt es also nicht. Ich nehme mal an, daß beim ersten Durchlauf der Schleife case 2 erfüllt ist, dann wird $menue_id auf 2 gesetzt. Bei allen folgenden Durchläufen ist dann wohl kein case erfüllt, PHP landet bei default, und da Du $menue_id nicht bei jedem Durchlauf initialisierst ($menue_id="";), wird wieder 2 ausgegeben.
Probier mal $menue_id=""; vor den switch zu setzen, dann vermeidest Du, daß der vorherige Schleifendurchlauf eine Rolle spielt. Generell ist aber, so wie das Skript ist, der switch überflüssig:
while($zeile = mysql_fetch_array($menue_select))
{
echo "<td><a href="#?menue_id=".$zeile["menuid"].""".$zeile["menu"]."</a></td>";
}
Das würde genauso gut funktionieren.
Viele Grüße
Stephan