Hello,
was hältst Du denn davon, Deinen Code gleich von Anfang an etwas aufzuteilen?
Den Fehler hat Dir Aley schom genannt https://forum.selfhtml.org/?t=198555&m=1333626.
Du musst auch nicht immer gleich alles ausgeben, somndern kannst die alternativen Ausgaben erst sammeln in Variablen und dann nachher erst an der passenden Stelle in dein HTML-Gerüst einsetztn.
Die() ist jedenfalls nicht elegant. Außerdem sollte der User diesen Fehler auch gar nicht unbedingt zu Gesicht bekommen, sondern nur eine Meldung, mit der er etwas anfangen kann. Die MySQL-Fehlermeldung würde ich stattdessen in ein Log umleiten, wo sie der Admin dann lesen kann.
define('CRLF',chr(13).chr(10));
$sql = "SELECT link, target FROM menu_items";
$result = mysql_query($sql, $database);
if $result
{
$out .= erzeuge_ausgabe($result);
}
else
{
$out .= erzeuge_fehlermeldung_mit_link_zurueck($mysql_error());
}
#------------------------------------------------------------------------
[link:http://de2.php.net/manual/en/function.rawurlencode.php]
[link:http://de2.php.net/manual/en/function.htmlspecialchars.php]
[link:http://aktuell.de.selfhtml.org/artikel/php/kontextwechsel/]
function erzeuge_ausgabe($result)
{
$ausgabe = '';
while($row = mysql_fetch_assoc($result))
{
$ausgabe .= '<li><a href="' . htmlspecialchars(rawurlencode($row['link'])) . '"' .
' target="' . $row['target']. '">' .
htmlspecialchars($row['linktext']) . '</a></li>' . CRLF;
}
return $ausgabe;
}
#------------------------------------------------------------------------
function erzeuge_fehlermeldung_mit_link_zurueck($errortxt)
{
# ...
# siehe oben
}
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg
![](http://selfhtml.bitworks.de/Virencheck.gif)
--
☻\_
/▌
/ \ Nur selber lernen macht schlau
<http://bergpost.annerschbarrich.de>