Bu aşağıdaki kodu bir deneme.php dosyasına kaydet ve php çalıştıran biryerde (local sunucu, hosting vs.) dene. Mantığını bakınca çözeceksin zaten. Ben veritabanından veriler gelmiş gibi düşünüp array e koydum. Onların veritabanından geldiğini farzederek anlamaya çalış.
Çok çok doğru olmadı ama gece gece bu kadar oldu. Artık geliştirmek sana kalmış. Bol şans.
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <style media="screen"> tr,td,th{border:1px solid #000; padding: 10px;} </style> <script src="https://code.jquery.com/jquery-3.3.1.min.js" charset="utf-8"></script> <script type="text/javascript"> $(function(){ // JQUERY İLE RANDEVU AL BUTONUNA TIKLADIĞIMIZ ZAMAN O BUTONDAKİ DATA DEĞERLERİNİ ALIYORUZ VE İSTEDİĞİMİZ GİBİ KULLANIYORUZ. $('.randevuAl').click(function(){ var saat = $(this).data('saat'); var danisman = $(this).data('danisman'); alert(danisman + ' kişisine, '+saat +' periyoduna bir randevu eklenecek.'); }); }); </script> </head> <body> <?php //VERİTABANINDAN DANIŞMANLARIN GELMELİ. $danisman = ['Ahmet','Mehmet','Cengiz','Hasan']; //VERİTABANINDAN PERİYODLAR GELMELİ. $periyod = ['11:00 - 12:00','12:00 - 13:00','13:00 - 14:00','14:00 - 15:00','15:00 - 16:00','16:00 - 17:00',]; //VERİTABANINDAN RANDEVULAR GELMELİ; BU ŞEKİLDE JOİN EDİLMİŞ DEĞİL DE PRIMARY KEY İLE GELSE DE OLUR. $randevu = [ [ 'Ahmet', '11:00 - 12:00', 'Tamirat var.' ], [ 'Cengiz', '12:00 - 13:00', 'Ağır hasar var.' ], [ 'Mehmet', '15:00 - 16:00', 'Kaza var.' ], ]; // İSTEDİĞİMİZ HÜCREDE RANDEVU VAR MI DİYE BAKAN FONKSİYON function randevu_bul($p, $d, $randevu){ $yes = false; foreach ($randevu as $r) {if($r[0] == $d && $r[1] == $p){$yes = true;$val = $r[2];}} if($yes){return "<td>".$val."</td>";} return false; } ?> <table> <thead> <tr> <th>Periyod</th> <?php // DANIŞMANLARIMIZI SIRALIYORUZ. foreach ($danisman as $d) { echo "<th>{$d}</th>"; } ?> </tr> </thead> <tbody> <?php foreach ($periyod as $pkey => $p) { echo "<tr>"; //İLK SÜTUNDA PERİYOTLARIN OLMASINI SAĞLIYORUZ. echo "<td>{$p}</td>"; //TABLO HÜCRELERINE GELDİĞİMİZ ZAMAN O HÜCREYE DENK GELEN PERİYOD VE DANIŞMANI BİLİYORUZ. //O ZAMAN BU HÜCREYE DENK GELEN BİR RANDEVU VAR MI BUNU FONKSİYONA SORUYORUZ: //VARSA RANDEVU DETAYINI YAZDIRIYORUZ: YOKSA BUTON KOYUYORUZ. foreach ($danisman as $dkey => $d) { $value = randevu_bul($p,$d, $randevu); if($value){ echo $value; } else { echo "<td><button class='randevuAl' data-saat='{$p}' data-danisman='{$d}'>Randevu al</button></td>"; } } echo "</tr>"; } ?> </tbody> </table> </body> </html>
BU DAHA TEMİZ OLDU

<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <style media="screen"> tr,td,th{border:1px solid #000; padding: 10px;} </style> <script src="https://code.jquery.com/jquery-3.3.1.min.js" charset="utf-8"></script> <script type="text/javascript"> $(function(){ // JQUERY İLE RANDEVU AL BUTONUNA TIKLADIĞIMIZ ZAMAN O BUTONDAKİ DATA DEĞERLERİNİ ALIYORUZ VE İSTEDİĞİMİZ GİBİ KULLANIYORUZ. $('.randevuAl').click(function(){ var saat = $(this).data('saat'); var danisman = $(this).data('danisman'); alert(danisman + ' kişisine, '+saat +' periyoduna bir randevu eklenecek.'); }); }); </script> </head> <body> <?php //VERİTABANINDAN DANIŞMANLARIN GELMELİ. $danisman = ['Ahmet','Mehmet','Cengiz','Hasan']; //VERİTABANINDAN PERİYODLAR GELMELİ. $periyod = ['11:00 - 12:00','12:00 - 13:00','13:00 - 14:00','14:00 - 15:00','15:00 - 16:00','16:00 - 17:00',]; //VERİTABANINDAN RANDEVULAR GELMELİ; BU ŞEKİLDE JOİN EDİLMİŞ DEĞİL DE PRIMARY KEY İLE GELSE DE OLUR. $randevu = [ ['Ahmet','11:00 - 12:00', 'Tamirat var.'], ['Cengiz','12:00 - 13:00','Ağır hasar var.'], ['Mehmet','15:00 - 16:00','Kaza var.'], ]; // İSTEDİĞİMİZ HÜCREDE RANDEVU VAR MI DİYE BAKAN FONKSİYON function randevu_bul($p, $d, $randevu){ $yes = false; foreach ($randevu as $r) {if($r[0] == $d && $r[1] == $p){$yes = true;$val = $r[2];}} if($yes){return "<td>".$val."</td>";} return "<td><button class='randevuAl' data-saat='{$p}' data-danisman='{$d}'>Randevu al</button></td>"; } function sutunlari_olustur($periyod,$danisman,$randevu){ foreach ($periyod as $p) { echo "<tr><td>{$p}</td>"; satirlari_olustur($p,$danisman,$randevu); echo "</tr>"; } } function satirlari_olustur($p,$danisman,$randevu){ foreach ($danisman as $d) { echo randevu_bul($p,$d,$randevu); } } ?> <table> <thead> <tr> <th>Periyod</th> <?php // DANIŞMANLARIMIZI SIRALIYORUZ. foreach ($danisman as $d) { echo "<th>{$d}</th>"; } ?> </tr> </thead> <tbody> <?php sutunlari_olustur($periyod,$danisman,$randevu); ?> </tbody> </table> </body> </html>