echo $begrüßung;
Habe gerade $tmp ausgelesen und gemerkt, dass er zwar $tmp[1] beschreibt, $tmp[2] aber nicht mehr.
Die Kontrollausgabe von $tmp vor und nach dem Beschreiben zeigt welches Ergebnis? Verwende: var_dump($tmp);
Array (6)
1 => Array (1)
0 => Array (7)
termin_id => 10
Die sieht nicht sehr original aus. Copy & Paste war nicht möglich? Wie auch immer. Ich kann dir nur weitere Kontrollausgaben empfehlen. Zum Nachvollziehen fehlen Angaben zu den derzeitigen Variableninhalten oder es ist keine Initialisierung zu sehen (im Fall $tmp würde eine explizite Initialisierung vor der Schleife mit $tmp = array(); für Sicherheit sorgen, dass $tmp ein leeres Array ist und nicht schon in vorherigen Schritten verwendet wurde und alten Inhalt mitbringt). Außerdem verwendest du selbst geschriebene Funktionen, deren Code mir nicht bekannt ist.
[...]
6 => empty
Es finden also 6 Schleifendurchläufe statt. Die Arrayelemente werden anscheinend angelegt, nur eben leer. Suche nun mit Kontrollausgaben in der Funktion weiter, die ein Ergebnis liefern sollte, also get_day_termin_raum() und dann weiter bei db_result() und gegebenenfalls sql_query().
Möglicherweise tritt im DBMS ein Fehler auf und die verwendeten Funktionen geben das über ihren Rückgabewert bekannt, was du vielleicht nicht auswertest.
echo "$verabschiedung $name";