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;