echo $begrüßung;
Ich möchte einen datenbank-INSERT davon abhängig machen, ob ein solcher Eintrag bereits vorhanden ist.
Dazu mache ich eine simple SELECT-abfrage nach dem entsprechenden Feld und möchte mit mysql_num_rows abfragen wieviele Ergebnisse diese lieferte.
Die bessere Strategie hat Sven ja schon erläutert. Ich beschränke mich deshalb auf das was du verkehrt machst, bzw. wie du es herausfinden kannst.
"Warning: mysql_num_rows(): supplied argument is not a valid MySQL-result resource"-Fehlermeldung.
Viele der mysql_*-Funktionen teilen einen aufgetretenen Fehler im Stillen mit, indem sie als Ergebnis ein false statt der sonst üblichen Ressourcen-Kennung liefern. false ist jedoch für die nachfolgende mysql_*-Funktion kein gültiges Argument, weswegen du von PHP eine Warnung bekommst.
$result = (mysql_query($query) or die(mysql_error()));
$anzahl = mysql_num_rows($result);
Warum er allerdings hier auftritt ist mir im Moment ein Rätsel, denn eigentlich hätte das die() anschlagen müssen. Bist du sicher, dass das die richtige Stelle zur Meldung ist? Wenn ja, dann mach bitte mit var_dump($result) eine Kontrollausgabe.
Auf http://de2.php.net/manual/de/function.mysql-num-rows.php wird im query der Datei-zeiger mit angegeben. Hat aber auch nichts geholfen.
Dateizeiger? Du meinst wohl die Ressourcenkennung der Verbindung. Wenn der Parameter nicht angegeben ist, suchen sich die mysql_*-Funktionen eine offene Verbindung. Bei einer einzigen Verbindung im Script ist es kein Problem, den Parameter wegzulassen, aber auch kein Beinbruch, wenn man ihn trotzdem der Ordnung halber mit angibt.
Übrigens: die() ist die zweitschlechteste aller Fehlerreaktionen (gleich nach Ignorieren). Besser ist es, auf den Fehler mit einer Fallunterscheidung zu reagieren und das Script ordentlich zu Ende zu bringen. Dabei sollte dem Anwender eine Meldung ausgegeben werden, die ihm was nützt. Sie könnte ihm Alternativen aufzeigen, wie er trotzdem noch zum Ziel kommt. Der Fehlermeldungstext von MySQL nützt dem Anwender nichts. Denjenigen, die die Information aus der Fehlermeldung auszunutzen wissen, will man diese Information nicht geben.
echo "$verabschiedung $name";