Ik ben bezig met forum als onderdeel van een community.. Het forum is verdeeld in de volgende hierarchische lagen:
Forum
Category
Topic
Bericht
Forum is de toplaag, onder het forum komt een category te hangen, onder een category een topic en onder een topic een message.. Elke laag is een klasse en
elke klasse is gebaseerd op een basisklasse met onder andere de variabelen id,creator,created_on die worden opgeslagen in de database..
De MySQL tabellen van bovenstaande lagen/klassen zien er zo uit:
forum -> id|creator|created_on|forumname|description
category -> id|creator|created_on|categoryname|description|forum_id
topic -> id|creator|created_on|topictitle|subtitle|category_id
message -> id|creator|created_on|message|topic_id
Nou wil ik dmv een join direct alle waarden uitlezen van alle tabellen tegelijk..
SELECT * FROM message
LEFT JOIN topic
ON message.topic_id=topic.id
LEFT JOIN category
ON topic.category.id=category.id
LEFT JOIN forum
ON category.forum_id=forum.id
WHERE message.id=1;
Als ik dit in PHP door een mysql_query en een mysql_result gooi, hoe kan ik dan onderscheid maken tussen de kolommen van de verschillende tabellen ?
Stel ik doe een while($row = mysql_fetch_array($result) en ik wil de creator van de message hebben dan lukt dit niet want $row['creator'] is altijd gelijk aan de laatste kolom met de naam 'creator' (in dit geval die van forum).. $row['message.creator'] werkt niet.. En met een mysql_fetch_object wordt er ook maar 1 creator aangemaakt, wederom die van forum...
Wie o wie heeft een methode om deze kolommen te onderscheiden ?
Ik had zelf bedacht ze te renamen in de select maar dan moet ik elke individuele kolom noemen in de select (select forum.id as F_ID,forum.creator AS F_creator etc etc).. Dat is niet echt handig..
Forum
Category
Topic
Bericht
Forum is de toplaag, onder het forum komt een category te hangen, onder een category een topic en onder een topic een message.. Elke laag is een klasse en
elke klasse is gebaseerd op een basisklasse met onder andere de variabelen id,creator,created_on die worden opgeslagen in de database..
De MySQL tabellen van bovenstaande lagen/klassen zien er zo uit:
forum -> id|creator|created_on|forumname|description
category -> id|creator|created_on|categoryname|description|forum_id
topic -> id|creator|created_on|topictitle|subtitle|category_id
message -> id|creator|created_on|message|topic_id
Nou wil ik dmv een join direct alle waarden uitlezen van alle tabellen tegelijk..
SELECT * FROM message
LEFT JOIN topic
ON message.topic_id=topic.id
LEFT JOIN category
ON topic.category.id=category.id
LEFT JOIN forum
ON category.forum_id=forum.id
WHERE message.id=1;
Als ik dit in PHP door een mysql_query en een mysql_result gooi, hoe kan ik dan onderscheid maken tussen de kolommen van de verschillende tabellen ?
Stel ik doe een while($row = mysql_fetch_array($result) en ik wil de creator van de message hebben dan lukt dit niet want $row['creator'] is altijd gelijk aan de laatste kolom met de naam 'creator' (in dit geval die van forum).. $row['message.creator'] werkt niet.. En met een mysql_fetch_object wordt er ook maar 1 creator aangemaakt, wederom die van forum...
Wie o wie heeft een methode om deze kolommen te onderscheiden ?
Ik had zelf bedacht ze te renamen in de select maar dan moet ik elke individuele kolom noemen in de select (select forum.id as F_ID,forum.creator AS F_creator etc etc).. Dat is niet echt handig..