Męczę się z tym już od dłuższego czasu i niestety nie bardzo wiem jak to rozgryźć.
Do wyświetlania zawartości (wyników z bazy) z 3 dynamicznych Select'ów mam poniższy kod:
<?php include('dbconfig.php'); $action = $_REQUEST['action']; if ($action=='showAll') {$id = "0";} else $id=$_POST['id']; switch($action) { case 'showAll': default: $stmt=$DB_con->prepare('SELECT * FROM slist GROUP BY site'); $stmt->execute(); break; case 'site': $stmt=$DB_con->prepare('SELECT menu FROM slist WHERE site=:id GROUP BY menu ORDER BY menu'); break; case 'menu': $stmt=$DB_con->prepare('SELECT categ FROM slist WHERE menu=:id GROUP BY categ ORDER BY categ'); break; case 'categ': $stmt=$DB_con->prepare('SELECT links FROM slist WHERE categ=:id GROUP BY categ ORDER BY links'); break; } ?>
Nie do końca działa on poprawnie, ponieważ przy wyborze ostatniego Select'a nie zwraca właściwego wyniku, a jest to spowodowane tym, że dla
Kod
case 'categ';
poprawne zapytanie powinno mieć postać Kod
$stmt=$DB_con->prepare('SELECT links FROM slist WHERE menu=:id AND categ=:id GROUP BY categ ORDER BY links');
Niestety nie wiem, w jaki sposób przekazać wartość
Kod
menu=:id
do tego zapytania.Link do demo i całego kodu umieściłem tutaj
Może mógłby ktoś podpowiedzieć, co zrobić/zmienić.