| PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Post your PHP questions here! |
 |

10-11-2009, 21:31
|
|
derdoitsche
Registrierter Benutzer
|
|
Registriert seit: Jun 2009
Beiträge: 10
|
|
ARRAY für PHP Menü
Hallo,
ich habe ein kleines Problem und nach Stundenlangen im Kreis drehen fällt mir nichts mehr dazu ein.
Ich habe alles aus google rausgepresst aber nichts passendes gefunden, vlt bin ich ja nur zu dumm zum googeln.
Ich möchte ein Menü programmieren,
welches erkennt zu welchem Menüpunkt welche unterpunkte gehören.
Weil es sehr umfangreich ist habe ich mich dafür entschieden es mit einer MySQL Datenbank festzuhalten.
Soweit sogut, funktioniert auch alles,
aber jetzt zum eigentlichen Problem,
weil ich mir nicht wirklich viel Arbeit gespart habe wenn ich jetzt doch jeden Array per Hand eingeben muss habe ich nach einer Lösung gesucht, und auch gefunden,
nur funktioniert diese ja mal garnicht, hier ein Auszug:
Zitat:
while (list($id,$bezeichnung, $branche) = mysql_fetch_row($erg_branchen))
while ($nav_ary_branchen = array("$bezeichnung", "branchen.php", 0))
$nav_ary = array
(
array("Branchen", "branchen.php", 0),
array("Lösungen", "loesungen.php", 0),
);
$ary = array_combine($nav_ary_branchen, $nav_ary);
foreach ($ary as $key => $value)
{
echo insert_link($value[0], $value[1], $current, $value[2]);
}
function insert_link($key, $value, $current, $ebene=0)
|
Der Fehler liegt eindeutig in der 2. Zeile,
Zitat:
|
while ($nav_ary = array("$bezeichnung", "branchen.php", 0))
|
Aber auf diese Weise habe ich nur eine schier Enloskette "ARRAY" bekommen.
Und mit einer anderen änderung die ich im Momment leider nichtmehr nachvollziehen kann
erhielt ich eine Endloskette große und kleine "B" und als link wurde ein "r" oder "a" angegeben.
Ich hoffe ich habe niemand verwirrt und alles ausreichend beschrieben,
danke schonmal das ihr euch mein Problem durchgelesen habt und mir vlt helft, freundliche Grüße, tschüss.
|

11-11-2009, 01:03
|
|
Flip7
Registrierter Benutzer
|
|
Registriert seit: May 2007
Ort: Munich
Beiträge: 126
|
|
Hi,
dein Code ist ziemlich dirty :-D
zu deinem Code:
PHP-Code:
// irgendwie fehlen geschweifte Klammern?
// entsteht hier kein Fehler?
// sobald keine Reihe da ist, gibt mysql_fetch_row NULL zurück und PHP veruscht das auf die list-Elemente aufzuteilen... dirty dirty :-D
while (list($id,$bezeichnung, $branche) = mysql_fetch_row($erg_branchen))
// naja das $nav_ary_branchen Array wird jede Schleife neu zugewiesen -> Unendlichschleife
// was du suchst ist foreach( $arry as $key => $element) bzw. foreach( $arry as $element)...
while ($nav_ary_branchen = array("$bezeichnung", "branchen.php", 0))
// dieses Array könnte man außerhalb der Schleifen definieren, damit es nicht immer neu gesetzt werden muss
$nav_ary = array
(
array("Branchen", "branchen.php", 0),
array("Lösungen", "loesungen.php", 0),
);
$ary = array_combine($nav_ary_branchen, $nav_ary);
// was auch immer du damit machen möchtest... ich verstehs auf Anhieb nicht
foreach ($ary as $key => $value)
{
echo insert_link($value[0], $value[1], $current, $value[2]);
}
// das hier genauso wenig
function insert_link($key, $value, $current, $ebene=0)
mach's doch einfach so:
PHP-Code:
$obj = NULL;
while ($obj = mysql_fetch_object($erg_branchen))
{
$id = $obj -> id;
$bezeichnung = $obj -> bezeichnung;
$branche = $obj -> branche;
$datenArray = array("$bezeichnung", "branchen.php");
foreach ($datenArray as $nav_ary_branchen)
{
// something...
}
}
Hoffe ich konnte die helfen!
Sieht allerdings aus, als ob deine inner while Schleife nie beendet wird!
- Philipp
|

11-11-2009, 16:52
|
|
derdoitsche
Registrierter Benutzer
|
|
Registriert seit: Jun 2009
Beiträge: 10
|
|
Hey danke ..
Sieht schonmal übersichtlicher aus =)
Ja mein quelltext ist wirr, weil ich mir das alles aus Toturials zusammen suche,
ich habe leider noch nicht eine Stunde Programmier Untericht,
aber man wächst an seinen Aufgaben.
Leider gibt das WWW kein vergleichbares Toturial,
aso ich habe grade den Codeschnipsel eingefügt,
aber habe dafür andere Fehlermeldungen erhalten, so das mir klar wurde, um das ihr mir besser helfen könnt fehlt der Rest des Quelltextes, aber jetzt bitte nicht lachen =)
PHP-Code:
<? $server = "Server"; $user = "User"; $pass = "mypassword"; $database = "database" ; $table_brancheuloesungen="Table"; $verbindung = @mysql_connect("$server","$user","$pass");
if (!$verbindung) { echo "Keine Verbindung möglich!\n"; exit; } $abfrage_branche = "SELECT * from $table_brancheuloesungen WHERE branche=1 ORDER BY bezeichnung"; $erg_branchen = mysql_db_query("$database",$abfrage_branche,$verbindung);
list($id, $bezeichnung, $branche) = mysql_fetch_row($erg_branchen);
while (list($id,$bezeichnung, $branche) = mysql_fetch_row($erg_branchen)) while ($nav_ary_branchen = array("$bezeichnung", "branchen.php", 0)) $nav_ary = array ( array("Branchen", "branchen.php", 0), array("$bezeichnung", "branchen.php", 1), array("$produkt", "$link", 2), array("Lösungen", "loesungen.php", 0), array("$loesung", "loesungen.php", 1), array("$produkt", "$link", 2), ); $ary = array_combine($nav_ary_branchen, $nav_ary); foreach ($ary as $key => $value) { echo insert_link($value[0], $value[1], $current, $value[2]); }
function insert_link($key, $value, $current, $ebene=0) { $menuclass = "menu"; if ($ebene > 0) { $menuclass = "submenu"; } $result = '<div class="'.$menuclass; if ($ebene > 0) { $result .= ', indent'.$ebene.'">'; } else { $result .= '">'; } if ($key == $current) { $result .= $key; } else { $result .= '<a href="' . $value. '" class="'.$menuclass.'">' . $key .'</a>'; } $result .= '</div>'; return $result;
mysql_close($verbindung); } function zeige_navigation($current){};
?>
Also Heute habe ich sowieso keine Zeit mehr mich näher dazu zu beschäfftigen, damit warte ich bis zum Wochenende,
darum danke schonal vorneweg für eure Bemühungen ..
mfg. Frank
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
|
PHP News
|