dedlfix: Mehrere Checkboxwerte in MySQL-DB schreiben?

Beitrag lesen

Ich kann doch den String auf bestimmte Inhalte überprüfen und diese dann ersetzen?

ja, das geht beispielsweise mit strtr()

[...Verknüpfungstabelle...]

Aber ist das nicht zu umständlich?

Das kommt ganz drauf an...™ Beantworte dir folgende Fragen:

(1) Lohnt es sich, eine Fahrzeugtabelle anzulegen? Sollen für jedes Fahrzeug weitere Daten in der DB gehalten werden? (Kennzeichen, Typ, Farbe ;-), ...)

(2) Sollen für jedes am Einsatz beteiligte Fahrzeug weitere Daten festgehalten werden? (Kommentare zu diesem Fahrzeug (vielleicht weil was beschädigt wurde), Verbrauch von Materialien, ...)

Wenn (2) nicht notwendig ist, du aber gern (1) hättest, können beispielsweise die IDs von (1) trennzeichensepariert in ein Feld der Einsatz-Tabelle geschrieben werden. Das ist aber nur bedingt zu empfehlen, weil du dann erst an diesem Trennzeichen explodieren musst und dann die Fahrzeugnamen einzeln abfragen musst. Vielleicht hast du die Fahrzeugnamen aber schon in einem Array drinstehen, weil du sie an anderer Stelle des Script auflisten möchtest. Dann würde ja ein Array-Zugriff reichen.

Mit der Verknüpfungstabelle kannst verschiedene Daten von der DB ein _einer_ Abfrage ermitteln lassen, z.B. so:

SELECT e.Grund, e.Zeit, f.Name, f.Typ, fe.Kommentar, ...
FROM Einsatz e
LEFT JOIN FahrzeugeProEinsatz fe ON e.ID = fe.ID_Einsatz
LEFT JOIN Fahrzeuge f ON fe.ID_Fahrzeug = f.ID
ORDER BY e.Zeit
WHERE...
LIMIT...

Das ergibt dann pro am Ensatz beteiligtem Fahrzeug ein Ergebniszeile.