Kategorileri başlık olacak şekilde listeleme mantığı
örneğin, bir veritabanım var:
tablo adı: category
id 1 value PHP
id 2 value CSS
id 3 value HTML
olsun.
dersler diye ayrı bir tablom var o da
tablo adı: lessons
id 1 value Diziler category 1
id 2 value Fonksiyonlar category 1
id 3 value Formlar category 3
id 4 value Sıfırlama category 4
olsun
LEFT JOIN veya INNER JOIN kullanarak verileri çekiyorum.
ancak;
PHP
Diziler
Fonskiyonlar
CSS
Sıfırlama
HTML
Formlar
şeklinde çekmek istiyorumç. Kategorileri çekeyim. altında hangi kategoriye ait dersler varsa onlar gelsin. recursive dışı bi şekilde yapılıyodu mantığını kuramadım.
Yani bunun en sağlıklı hali recursive gibi görünüyor ama.
$db = new PDO(...);
function menu($parent_id = 0) {
global $db;
$menuler = $db->query("SELECT id, baslik FROM menuler WHERE parent_id = $parent_id")->fetchAll(PDO::FETCH_ASSOC);
foreach($menuler as $menu):
?>
<div>
<?= $menu['baslik'] ?>
<div><?= menu($menu['id']) ?></div>
</div>
<?php
endforeach;
}
<div>
Menu
<?= menu() ?>
</div>
gibi.