echo $begrüßung;
Habt ihr ne Idee woran es liegen kann ?
Oder habt ihr noch ne andere IDee wie man es machen könnte ?
Es sind immer wieder die gleichen Grundprinzipien der Fehlersuche anzuwenden. Lass dir die Werte der beteiligten Variablen ausgeben. Für einfache Werte eignet sich echo, für mehr Genauigkeit ist var_dump() die bessere Variante. Vergleiche diese ausgegebenen Werte mit dem vor dir erwarteten oder dem in der Dokumentation beschrieben Wert.
Desweiteren geben einige PHP-Funktionen im Fehlerfall etwas anderes zurück als im Gutfall. Informiere dich stets im PHP-Handbuch über die Arbeitsweise der von dir eingesetzten Funktion und ignoriere keinen der Ergebniswerte.
Es ist ebenfalls von Vorteil, sich das SQL-Statement zunächst in einer separaten Variable zusammenzubauen, um sich dann anzuschauen, was dabei rausgekommen ist.
$abfrage=mysql_query("SELECT Nickname FROM benutzerdaten WHERE Nickname = $benutzer[0]['Nickname']");
$ergebnis=mysql_num_rows($abfrage);
Nur leider erscheint dort der Error :
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /usr/export/www/vhosts/funnetwork/hosting/vanhellsehn/3.php on line 47
Das ist ein Folgefehler, weil du den Hinweis von mysql_query() auf einen Fehlerzustand missachtet hast. Diese Meldung ist unter Anfängern so alltäglich, dass ein kurzes Suchmaschine-Anwerfen dir zu ihr eine Menge Fundstellen gebracht hätte.
Einige PHP-Teile werfen nicht sofort mit Fehlermeldugen um sich, wenn etwas Unerwartetes eingetreten ist. Die mysql-Funktionen gehören zu dieser Sorte. Man muss hier das Funktionsergebnis auswerten und im Falle eines false gibt es über die Funktion mysql_error() den Fehlertext abzufragen.
Falls dir bei deiner weiteren Recherche ein Konstrukt à la
$ergebnis = mysql_query($sql) or die(mysql_error());
über den Weg läuft, so sei noch gesagt, dass das Sterbenlassen des Scripts mit die() keine Fehlerbehandlung ist, sondern eher als Flucht aus der Verantwortung zu betrachten ist. So ein die() hinterlässt eine unfertige Webseite, verunstaltet dabei das so mühevoll aufgesetzte Design, und gibt außerdem noch Informationen an den Anwender, mit der er nichts anfangen kann. Besser ist es, im Gutfall das gewünschte Ergebnis und im Fehlerfall eine allgemein gehaltene Hinweismeldung auszugeben, anschließend normal mit dem Programm fortzufahren. Füe deine Suche nach dem Fehler musst du aber dennoch den genauen Wortlauf ausgeben. Diese für das Debugging notwendigen Ausgaben kannst du nach selbigem ja wieder entfernen oder du notierst sie gleich bedingt:
if (DEBUG)
echo ...;
Ein
define('DEBUG', false);
am Anfang des Scripts schaltet dann, auf true gestellt, alle Debug-Ausgaben an.
Noch ein Hinweis: Es ist immer empfehlenswert, beim Entwickeln das error_reporting auf E_ALL (und display_errors auf on) zu stellen, damit PHP alle Hinweismeldungen ausgeben kann.
echo "$verabschiedung $name";