Şöyle bir örnek yaptım hızlıca, çıktısı da aşağıda, performansa odaklanmadım, hızlıca tablette yazdım:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
table{border-collapse:collapse;border:1px solid #ccc;}
table td, table th{border:1px solid #ccc;padding:4px 6px}
</style>
</head>
<body>
<?php
try {
$db = new PDO("mysql:host=127.0.0.1;dbname=test;port=3306;charset=utf8", 'root', '');
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sth = $db->query("SELECT p.*, v.vardiya_tarihi, vt.vardiya_aciklama FROM personel AS p
INNER JOIN vardiya AS v ON (v.personel_id = p.personel_id)
LEFT JOIN vardiya_turu AS vt ON (vt.vardiya_turu_id = v.vardiya_turu_id)
WHERE v.vardiya_aktif=1
ORDER BY p.personel_id ASC, v.vardiya_tarihi ASC");
$personeller = $sth->fetchAll(PDO::FETCH_OBJ);
$sth = $db->query("SELECT vardiya_tarihi FROM vardiya WHERE vardiya_aktif=1 GROUP BY vardiya_tarihi ORDER BY vardiya_tarihi");
$vardiyalar = $sth->fetchAll(PDO::FETCH_OBJ);
$toplam_vardiya = $sth->rowCount();
$results = [];
foreach($personeller as $personel) {
$results[$personel->personel_id]['ad_soyad'] = $personel->personel_ad . ' ' . $personel->personel_soyad;
$results[$personel->personel_id]['vardiyalar'][] = ['tarih'=>$personel->vardiya_tarihi, 'aciklama'=> $personel->vardiya_aciklama];
}
} catch (PDOException $e) {
die($e->getMessage());
}
?>
<table>
<tr>
<th>PERSONELLER</th>
<?php foreach($vardiyalar as $vardiya): ?>
<th><?php echo $vardiya->vardiya_tarihi; ?></th>
<?php endforeach; ?>
</tr>
<?php foreach($results as $personel): ?>
<tr>
<td><?php echo $personel['ad_soyad']; ?></td>
<?php foreach($personel['vardiyalar'] as $vardiya): ?>
<td><?php echo $vardiya['aciklama']; ?></td>
<?php endforeach; ?>
<?php for($i=0;$i<($toplam_vardiya-count($personel['vardiyalar']));$i++): ?>
<td></td>
<?php endfor; ?>
</tr>
<?php endforeach; ?>
</table>
</body>
</html>
Ne diyeceğimi bilemiyorum. Çok ama çok teşekkür ederim. Hemen inceliyorum.