Hat dir diese Antwort geholfen?
Hallo
Also
Was mir gerade noch aufgefallen ist, dass der Sript beim erstenmal durchläuft, Wenn ich dann einen link anklicke, kommt folgende Fehlermeldung:
Warning: Invalid argument supplied for foreach() in /opt/apache/htdocs/CKSadmin/leiter/navi.php on line 44
Zeile 44 ist eine foreach schleife
foreach ($thema as $wert)
warum tut die beim erstenmal und beim zweitenmal nicht?
hier mal der ganze code:
auskommenteirt und natürlich etwas schwieriger als das beispiel von eben
aber ich denke zu verstehen
<?
$fp="navi.txt";
$datei=fopen($fp, "r");
$zeile = true;
$x=0;
$y=0;
while ($zeile)
{
$zeile = fgets($datei,100);
$anfang = substr($zeile, 0, 2);
if($anfang!='//')
# // in der Textdatei bedeutet kommentar, also soll es nicht gelsesn werden
{
if($anfang=='++')
##++beudeutet oberkategorie
{
$entry = explode ("|;|", $zeile);
$thema[$x] = $entry;
#wenn ich das nicht mit $x mache, dann kommt fehlermeldung, aber geht ja so auch
$x++;
}
elseif($anfang=='--')
##-- bedeutet unterkategorie
{
$entry = explode ("|;|", $zeile);
$unterthema[$y] = $entry;
//selbe wie mit $x
$y++;
}
}
}
fclose($datei);
?>
<table class="navi" cellpadding="7px">
<?php
#ausgabe für die themen
foreach ($thema as $wert)
{
echo "<tr><td class='td_thema'><a class='thema' href='index.php?thema=".$wert[1]."'>".$wert[2]."</a></td></tr>\n";
#ausgabe für die untertheman
foreach ($unterthema as $navi)
{
if($_GET["thema"]==$navi[2] AND $wert[1]==$navi[2])
{
echo "<tr><td class='td_unterthema'><a class='unterthema' href='index.php?thema=".$navi[2]."&unterthema=".$navi[1]."'>$navi[3]</a></td></tr>\n";
}
}
}
?>
</table>
Also warum ich das nicht gleich in der while schleife ausgeben, ist dass ich das array noch mal wieder brauche, nicht in der navigation, sondern auf was anderem.
vielen dank
der_webi
achja
noch die textdatei vielleicht
also jetzt mal 2 beispiele
++|;|2|;|Kategorie2|;|
--|;|4|;|2|;|Befehl2|;|