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

Beitrag lesen

Hallo,

irgendwie stehe ich gerade total auf dem Schlauch liegt auch daran, dass ich mit so einem Array wie wir es hier haben noch nie gearbeitet habe.

Ich habe folgende Funktion

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;
            }
    }

Und dann habe ich noch diesen Bereich

<?php 
if($MitarbeiterLager > 0) {
    foreach($MitarbeiterLager as $arrayMitarbeiterLager){

        $MitarbeiterKalenderTagesansicht = MitarbeiterKalenderTagesansicht($mysqli, $_GET['date'], $arrayMitarbeiterLager['userid']);
        foreach($MitarbeiterKalenderTagesansicht as $arrayKalenderTagesansicht){ ?>
            <?php //echo $arrayKalenderTagesansicht['k_von'] . " - " . $arrayKalenderTagesansicht['k_bis'] . "<br>";?>
        <?php } ?>
    
<div style="font-weight: bold; margin-bottom: 5px;"><?php echo $arrayMitarbeiterLager['per_vorname'] . " " . $arrayMitarbeiterLager['per_name'] ; ?></div>
<div style="margin-bottom: 1em">


<?php   
   $w_prefix = ARRAY('so', 'mo', 'di', 'mi', 'do', 'fr', 'sa')[date("w", $zeit)];
   $von = $arrayMitarbeiterLager["{$w_prefix}_von"];
   $bis = $arrayMitarbeiterLager["{$w_prefix}_bis"];

   if ($von != "")
   {
      echo "$von Uhr bis $bis Uhr";
   }
   else
   {
      echo "nach Bedarf";
   }
?>

</div>

<?php
}}
else { echo "Keine Mitarbeiter im Lager"; }
?>

Jetzt muss ich meines mit deinem irgendwie verbinden

$termine = [ [ 't_von' => "10:00", 't_bis' => "11:00" ],
             [ 't_von' => "12:15", 't_bis' => "13:00" ],
            [ 't_von' => "15:00", 't_bis' => "16:30" ]
           ];

$Anfang = "09:00";
$Ende = "16:00";
$Da = "";

// Anfang als Ende des letzen Termins setzen
$vorigesBis = $Anfang;
// Pseudotermin hinzufügen für Ende der Arbeitszeit
$termine[] = [ 't_von' => $Ende, 't_bis' => 'xxxxx' ];

// Und jetzt über alle Termine iterieren.
foreach ($termine as $termin)
{
   if ($vorigesBis < $termin['t_von'])
   {
      $Da .= $vorigesBis . " bis " . $termin['t_von'] . "<br>";
   }
   if ($termin['t_bis'] > $vorigesBis)   // Falls ein Monstertermin andere überdeckt
   {
      $vorigesBis = $termin['t_bis'];
   }
}

echo "Zeiten: <br>" . $Da;