echo $begrüßung;
$sql = "SELECT * FROM table WHERE bedingung = zutrifft";
$query = mysql_query($sql);
if(!$query){
Ich schreibe es lieber andersrum. Erst das normale Verhalten und im else-Zweig die Ausnahme. Aber das ist im Grunde egal.
// Query Fehlgeschlagen - Fehler
// $fehlervariable = mysql_error();
Der Admin bekommt die Nachricht über den Meldungstext, also mysql_error(). Je nach Konzept schriebe ich das beispielsweise ins Logfile oder sendete es per Mail. Dafür kann man sich ja eine Funktion definieren, dass nicht immer das ganze Fehlermeldungshandling geschrieben werden muss.
}else{
$arr = mysql_fetch_assoc($query);
if(empty($arr)){
// Array leer, kein passender Datensatz gefunden - Fehler
// $fehlervariable = "leeres Array";
Ein leeres Array entsteht nicht. Die Fetch-Funktionen liefern entweder ein Array (oder Objekt) mit einem Datensatz oder false. empty() liefert false beim Array oder true bei false. Man kann das empty() auch weglassen. Das Array, weil gefüllt, ergibt immer true im booleschen Kontext und false ist klar.
Aber was genau würdest du als Admin speichern?
Kontextabhängig das, was gerade für den Admin interessant ist. Speichern für den weiteren Scriptverlauf würde ich ohne Notwendigkeit erstmal gar nichts. Die Benachrichtigung tät ich on-the-fly erledigen.
echo "$verabschiedung $name";