Bernd: Darstellung/ Ausgabe von weiteren Einträge abhängig machen

Beitrag lesen

Moin,

ich habe folgende Funktion und die dazugehörige Ausgabe

function MitarbeiterKalenderTagesansicht($mysqli, $datum, $user) {
    
        $stmt = $mysqli->prepare("

            SELECT kt_id, kt_kalenderID, kt_datum, k_ganztags, k_von, k_bis, kp_userID
            FROM kalender_termine 

            LEFT JOIN kalender ON kalender.k_code = kalender_termine.kt_kalenderID
            LEFT JOIN kalender_personal ON kalender_personal.kp_code = kalender_termine.kt_kalenderID
            
            WHERE kt_datum=? AND kp_userID=?");
       
        $stmt->bind_param("ss", $datum, $user);
        $stmt->execute();
        $stmt->bind_result($kt_id, $kt_kalenderID, $kt_datum, $k_ganztags, $k_von, $k_bis, $kp_userID);
        $stmt->store_result();
        
        if($stmt->num_rows() >  0) {     
            
            while ($stmt->fetch()){
                
                $MitarbeiterKalenderTagesansicht[] = array( 
                    
                    'kt_id'          => $kt_id,
                    'kt_kalenderID'  => $kt_kalenderID,
                    'kt_datum'       => $kt_datum,
                    'k_ganztags'     => $k_ganztags,
                    'k_von'          => $k_von,
                    'k_bis'          => $k_bis,
                    'kp_userID'      => $kp_userID
                
                );
            }
            return $MitarbeiterKalenderTagesansicht;
            }
    }
<?php foreach($UserAktiv as $arrayUserAktiv){

$MitarbeiterKalenderTagesansicht = MitarbeiterKalenderTagesansicht($mysqli, $_GET['date'], $arrayMitarbeiterLager['userid']);
        foreach($MitarbeiterKalenderTagesansicht as $arrayKalenderTagesansicht){ ?>
            <?php echo $arrayKalenderTagesansicht['k_von'] . " - " . $arrayKalenderTagesansicht['k_bis'];?><br>
        <?php } ?> 

?>
    
<div><?php echo $arrayUserAktiv['per_vorname'] . " " . $arrayUserAktiv['per_name'] ; ?></div>
<div>

<?php   
if ($wochentage[date("w", $zeit)] == "montag") { 
    
    if ($arrayUserAktiv['mo_von'] != "") {
         echo $arrayUserAktiv['mo_von'] . " Uhr bis " . $arrayUserAktiv['mo_bis'] . " Uhr";
    } else { echo "nach Bedarf"; }

}
?>

<?php   
if ($wochentage[date("w", $zeit)] == "dienstag") { 

    if ($arrayUserAktiv['di_von'] != "") {
         echo $arrayUserAktiv['di_von'] . " Uhr bis " . $arrayUserAktiv['di_bis'] . " Uhr";
    } else { echo "nach Bedarf"; }

}
?>

<?php  
if ($wochentage[date("w", $zeit)] == "mittwoch") { 

    if ($arrayUserAktiv['mi_von'] != "") {
        echo $arrayUserAktiv['mi_von'] . " Uhr bis " . $arrayUserAktiv['mi_bis'] . " Uhr";
    } else { echo "nach Bedarf"; }

}
?>

<?php   
if ($wochentage[date("w", $zeit)] == "donnerstag") { 

    if ($arrayUserAktiv['do_von'] != "") {
        echo $arrayUserAktiv['do_von'] . " Uhr bis " . $arrayUserAktiv['do_bis'] . " Uhr";
    } else { echo "nach Bedarf"; }

}
?>

<?php   
if ($wochentage[date("w", $zeit)] == "freitag") { 

    if ($arrayUserAktiv['fr_von'] != "") {
        echo $arrayUserAktiv['fr_von'] . " Uhr bis " . $arrayUserAktiv['fr_bis'] . " Uhr";
    } else { echo "nach Bedarf"; }

}
?>

<?php   
if ($wochentage[date("w", $zeit)] == "samstag") { 
    
    if ($arrayUserAktiv['sa_von'] != "") {
        echo $arrayUserAktiv['sa_von'] . " Uhr bis " . $arrayUserAktiv['sa_bis'] . " Uhr";
    } else { echo "nach Bedarf"; }

}
?>

<?php   
if ($wochentage[date("w", $zeit)] == "sonntag") { 
    
    if ($arrayUserAktiv['so_von'] != "") {
        echo $arrayUserAktiv['so_von'] . " Uhr bis " . $arrayUserAktiv['so_bis'] . " Uhr";
    } else { echo "nach Bedarf"; }

}
?>
</div>

<?php } ?>

Das ganze sieht dann so aus

Die Ausgabe stimmt also, Weg und die dazugehörigen Zeiten sind nur Test Ausgaben, die sind später nicht mehr sichtbar.

Jetzt kommt das schwere wo ich überhaupt kein Plan habe, wie ich es umsetzten soll. Beim ersten Eintrag hat der User zwischen 11:30 Uhr bis 17:30 Uhr Zeit. Jetzt ist er zwischen 09:30 - 12:30 verplant. Die Anzeige müsste wie wie folgt aussehen

  • 12:30 Uhr bis 17:30

Beim zweiten User wird es noch viel interessanter, dieser ist zwischen 09:00 Uhr bis 17:30 Uhr verfügbar, ist aber zwischen 06:30 - 08:00 & 16:30 - 18:00 verplant, also dürfte er nur von 09:00 Uhr bis 16:30 angezeigt werden.

Jetzt nehmen wir mal einen weiteren Fall. User drei ist von 08:00 - 20:00 Uhr da. Folgende Termine hat er 08:45 - 10:00 & 12:00 - 14:00 & 15:00 - 17:00 Uhr. Dann müsste dieser wie folgt angezeigt werden:

  • 08:00 bis 08:45 Uhr
  • 10:00 bis 12:00 Uhr
  • 14:00 bis 15:00 Uhr
  • 17:00 bis 20:00 Uhr

Wie kann ich eine solche Darstellung realisieren oder ist dieses unmöglich?