Moin, moin.
Ich habe eine Tabelle in einer Datenbank mit folgenden Einträgen:
Das ganze möchte ich dann als HTML Tabelle in der Form darstellen:
So ziehe ich mir die Daten in ein Object ($row):
Mein Problem sind nun diese Sonderdienste sowie das Umsortieren der einzelnen Datenbankzeilen.
Mit folgendem Ansatz habe ich es bereits probiert:
Wenn man die Sonderdienste weglässt, funktioniert es so ganz prima.
Sobald aber ein Dienstabend aus der Reihe tanzt, klappt es mit der "Datums-Wechselbedingung" nicht mehr. Dann verschiebt sich alles.
Vor der Ausgabe wird übrigens per If überprüft ob es ein normaler oder ein Sonderdienst ist.
Hat jemand eine Idee oder einen anderen Ansatz wie ich das mit dem Umformen bewerkstelligen kann?
Oder soll ich was an der DB Struktur ändern?
MfG
Androxin
PS: Ich hoffe, dass meine Codeauszüge so reichen. Wenn nicht, kann ich auch noch mehr aus meiner Datei posten/erklären.
Vielen Dank schon mal :-)
Ich habe eine Tabelle in einer Datenbank mit folgenden Einträgen:
Code:
ID | Datum | Gruppe | Fahrzeug | Sonderdienst 2 | 11.01.2010 | 1 | LF 16 | 3 | 11.01.2010 | 2 | Wache | 4 | 25.01.2010 | | | Erste Hilfe 5 | 29.01.2010 | 2 | DLK | 6 | 08.02.2010 | 1 | RW2 | 7 | 08.02.2010 | 2 | LF 16 | 8 | 08.02.2010 | 3 | DLK |
Code:
Datum | Grp 1 | Grp 2 | Grp3 11.01.2010 | LF 16 | Wache | ---- 25.01.2010 | Erste Hilfe 29.01.2010 | ---- | DLK | ---- 08.02.2010 | RW2 | LF 16 | DLK
PHP-Code:
SELECT a.id, a.datum, a.gruppe, a.fahrzeug, a.sonderdienst, a.special, b.id as grp_id, b.bezeichnung
FROM `vuis_dienstplaene` AS a
LEFT JOIN `vuis_gruppen` AS b
ON b.id = a.gruppe
WHERE `datum` >= \"".$jahr."-01-01\" and `datum` <= \"".$jahr."-12-31\" ORDER BY `datum` asc, `gruppe` asc
Mein Problem sind nun diese Sonderdienste sowie das Umsortieren der einzelnen Datenbankzeilen.
Mit folgendem Ansatz habe ich es bereits probiert:
PHP-Code:
if(isset($last_dat) and $row->datum <> $last_dat OR $data["6"] <> ''){ // Bedingung wird bei jedem Datumswechsel erfüllt
for ($gr=1; $gr<=6; $gr++){ // Wenn im $daten[$gr] noch nichts eingetragen wurde (kein Eintrag für
if (!isset($data[$gr])){ // Gruppe vorhanden), soll es auf "leere Zelle" gesetzt werden
$data[$gr] = "<td> </td>";
}
}
echo "<tr>
<td align=\"center\" width=\"90\" height=\"30\">".datum_to_de($last_dat)."</td>
$data[1] $data[2] $data[3] $data[4] $data[5] $data[6]
</tr>";
unset($data);
}
$data[$row->gruppe] = "<td align=\"center\" style=\"background-color:".$bg_color.";\" width=\"90\">".$text.$edit."</td>\n";
$last_dat = $row->datum;
// Übrig gebliebene:
echo "<tr>
<td align=\"center\" width=\"90\" height=\"30\">".datum_to_de($row->datum)."</td>
$data[1] $data[2] $data[3] $data[4] $data[5] $data[6]
</tr>";
Sobald aber ein Dienstabend aus der Reihe tanzt, klappt es mit der "Datums-Wechselbedingung" nicht mehr. Dann verschiebt sich alles.
Vor der Ausgabe wird übrigens per If überprüft ob es ein normaler oder ein Sonderdienst ist.
Hat jemand eine Idee oder einen anderen Ansatz wie ich das mit dem Umformen bewerkstelligen kann?
Oder soll ich was an der DB Struktur ändern?
MfG
Androxin
PS: Ich hoffe, dass meine Codeauszüge so reichen. Wenn nicht, kann ich auch noch mehr aus meiner Datei posten/erklären.
Vielen Dank schon mal :-)
Kommentar