Voor mijn stage ben ik bezig met het maken van een (simpel) cms-systeem,
hoe en waarom doet er verder niet toe.. alles gaat tot nu toe voorspoedig.
ik heb zelf alles genormaliseerd (ik heb net 1 jaar php gehad, en een halfjaar mysql).. helaas zit ik op dit moment op vast en ik worstel hier al een dag mee.
het probleem zit hem in samenstellen van het menu met gegevens uit de database, er van uit gaande dat het mogelijk moet zijn om url's, interne pagina's en submenu's te gebruiken, heb ik hiervoor 3 tabellen.
hopelijk verduidelijkt dit plaatje de situatie een beetje:
http://imageshack.us/photo/my-images/338/img20120509140722.jpg/
(let niet op de groene pijl)
zoals je ziet heb ik de volgende tabellen: menu, url en page.
in de tabel menu zie je "sub" staan. dit is bedoeld als volgt:
is dit 0 dan is het een alleenstaand menu (geen submenu), als dit 1 is, is het een submenu van het menu 1.
dan heb je in de tabellen url en page "menuID", dit werkt hetzelfde als "sub" onder de tabel menu, het invullen van "menuID" maakt dit item lid van een hoofdmenu.
hopelijk ben ik nog te volgen,
en uiteindelijk de laatste stap, sorteren d.m.v. de waarde "Rank", deze is te vinden in alle 3 tabellen.
uiteindelijk zal dit dus in een (Html)menuformaat moeten worden uitgevoerd met php, maar het gaat al mis met het samenstellen van de query.
is het mogelijk om uit deze 3 tabellen de volgende gegevens te halen en te sorteren op rank?
ID, Name, (als het een url is, de waarde URL).
en dat in 1 query
(in meerdere query's is geen probleem, maar één query is lastig)?
zo ja, hoe zou ik dit op kunnen lossen?
de inhoud van een submenu word wel met een losse query gedaan.
ps.
ik kwam op dit idee:
SELECT *
FROM menu
JOIN url
JOIN page
ON menu.ID = url.MenuID OR menu.ID = page.MenuID;
maar dat bleek niet te werken.
1.304 views