echo $begrüßung;
Ich vermute mittlerweile, das die Abfrage, also $tmp[date("N",$row['termin_startdate'])][] = $row; fehlerhaft ist, denn der Abgleich mit $tmp[1] = array();, $tmp[2] = array();, usw. klappt ja nicht.
Zur Fehlersuche kann man solche Gebilde in seine Teilausdrücke aufteilen und einzeln testen.
- Liefert var_dump($row['termin_startdate']); ein passendes Ergebnis?
- Liefert var_dump(date("N",$row['termin_startdate'])); ein passendes Ergebnis?
- Steht in $row alles wie gewünscht?
Das sind die Teile, die ein Ergebnis liefern. $tmp[...][] = ... ist eine Zuweisung, die wird vermutlich problemlos ausgeführt. Eine Kontrollausgabe von $tmp oder $tmp[...] kann aber nicht schaden.
Außerdem bekomme ich mit fetch_assoc nun die Fehlermeldung:
Die Ursache ist nicht das fetch_assoc(). Das sorgt aber überhaut erst einmal dafür, dass du mit $row['termin_startdate'] an einen Spalteninhalt kommst.
A non well formed numeric value encountered in $tmp[date("N",$row['termin_startdate'])][] = $row;
Was glaube ich meine Vermutung untermauert?!
Die Funktion date() erwartet einen Unix-Timestamp. Ein solcher ist in dem Feld mit dem Alias weekday enthalten. In termin_startdate steht ein formatierter Datumsstring. Abgesehen davon kann man auch gleich MySQLs umfangreiche Date and Time Functions dazu verwenden, den Wochentag zu liefern (beispielsweise DAYOFWEEK() oder WEEKDAY())
echo "$verabschiedung $name";