dedlfix: Problem mit sql abfrage

Beitrag lesen

echo $begrüßung;

Weiterhin ist der Spaltenname "min" schlecht gewählt, Du solltest diesen besser vermeiden.

Ergänzend: MIN ist zwar kein resierviertes Wort, aber der Name einer Funktion. Eine Verwechslungsgefahr besteht jedoch nicht, weil hinter einem Funktionsnamen immer eine (-Klammer folgt. Mir fällt auch grad kein Syntax-Beispiel ein, bei dem "min" als Spaltenbezeichner eine öffnende Klammer folgen darf.
Schlecht ist der Name trotzdem, weil er wenig Aussagekraft hat und mehrdeutig ist (z.B. Min-uten vs. Min-imum).

Die Ausgabe soll dann ungefähr so aussehen:
name1, 01.01.2000, 12 Uhr, 13 Uhr, 31 min
Ist das mit einer SQL-Abfrage machbar oder muss ich die Daten im PHP Code zusammen fummeln.
Vermutlich nicht mit einem einfachen SQL-Statement: Du musst schließlich diverse nette Fälle betrachten, z.B:
   name3, 28.02.2008, 23:58, 00:02, 1444

So schwierig erscheint es mir, und die "netten Fälle" auch nicht als "nette Fallen". Wenn datum vom Typ DATE ist, und begin vom Typ TIME ist, sowie die Minutenzahl (INT) verwendet werden, und das redundante ende ignoriert wird, dann kann man sich a) aus datum und begin einen konkreten Anfangszeitpunkt zusammensetzen, b) unter Hinzunahme der min den Endzeitpunkt berechnen, und c) dann jeweils die gewünschten Informationen mit DATE_FORMAT() bestimmen:

a) ADDTIME(datum, begin)
b) ADDTIME(datum, begin) + INTERVAL min MINUTE
c) siehe Handbuch: DATE_FORMAT()

Etwas einfacher wird es natürlich wenn, wie schon erwähnt, mindestens datum und begin eine gemeinsame DATETIME-Spalte bildeten. Leider wird es (zumindest nach meinen Beobachtungen und Tests für diese Antwort) nicht einfacher, wenn das Ende ebenfalls eine vollständige DATETIME-Spalte wird und man die Dauer als Minutenzahl benötigt. Die lässt sich dann am einfachsten nur über TIMEDIFF(), TIME_TO_SEC() und einer Division durch 60 ermitteln, also in drei Schritten statt einer Addition nach b).

Meine Empfehlung an den OP: Nimm dir das Kapitel Date and Time Functions, verschaff dir einen Überblick über die vorhandenen Funktionen und experimentiere mit ihnen. Verwende dabei auch ungewöhnliche Werte, Werte, die einen Datums- und/oder Monatswechsel beinhalten, und auch die Winter-/Sommer-Zeitumstellung beinhalten.

echo "$verabschiedung $name";