• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Ausgabe zwischen zwei Tagen aus SQL

webana

Mitglied
Hallo,

ich speicher in der mysql Datenbank Arbeitszeiten, kommen - Früstückspause, Fp- Mittagspause und Mp - Gehen ... In diesem Fall 3 Zeilen von einem Tag.

Wie kann ich jetzt bei der Ausgabe zwischen zwei Tagen eine weitere Ausgabe (echo) einfügen?

Sind nicht immer drei Zeilen Pro Tag, Freitags zb nur 2, bzw. bei einer weiteren Abwesenheit auch mal 4.

Denkanstoß würde schon reichen

Gruß Alex
 
Werbung:
Tabelle:

id, datum, kommen, gehen ...
int, date, time, time, ...

Gibt dann noch eine zweite Tabelle, daten von dieser sollten auch nach dem Tag ausgegeben werden.

Edit: Ich glaub ich habs, hatte es vorher nur nach der Ausgabe eingefügt, jetzt mal davor und es scheint zu funktionieren.

PHP:
    $tag = 0;
...
    $tag = $tag+$row['tag'];
          
    if($tag % $row['tag'] > 0) {
        echo '<tr '.$tr.' class="zusammenfassung"><td colspan="4">-</td><td class="tright">-</td><td class="tright">-</td><td class="tright">-</td><td class="tright">-</td></tr>';
        $tag = 0; 
    }
 
Werbung:
Das Stichwort dazu wäre Gruppenbruch resp. Gruppenwechsel.

Eine Anleitung dazu => https://php-de.github.io/jumpto/gruppenbruch/

Ich würde mir die Daten zuerst Gruppieren, also einen mehrdimensionalen Array machen, mit dem Tag als höchste Ebene, also z.b.

PHP:
$daten['2021-03-15']['aktivitaeten'] = [];
$daten['2021-03-15']['zusammenfassung'] = [];
$daten['2021-03-16']['aktivitaeten'] = [];
$daten['2021-03-16']['zusammenfassung'] = [];

Und dann kannst du überdiesen Array loopen und alles schön ausgeben.
 
Werbung:
Ja natürlich. Um beim Beispiel dort zu bleiben:

PHP:
$last_entry = null;

while ($row = $result->fetch_object()) {

   if ($last_entry != $row->marke_name) {
        echo $last_entry.'<br>';
        $last_entry = $row->marke_name;
    }
    echo '- '.$row->modell_name.'<br>';
}
 
Zurück
Oben