Forum, hoofd- & subcategorie
Beste,
Ik ben al tijdje bezig met forum´s bouwen e.d maar uit een ding blijf ik maar niet komen, de index pagina. Ik wil de volgende opbouw maken:
School
- Docenten
- Huiswerk
- De klas
Website´s
- PHP Scripten
- Basis leren
- Gratis sites
Dit is maar een klein voorbeeldje maar ik denk dat je zo wel snap wat ik wil bereiken, een standaard forum index pagina.
Dit wil ik met de volgende database structuur:
Categorie
- id
- parent_id
- title
Momenteel laat ik daar de volgende query op los:
Het gedeelte van dat topic joinen is niet heel belangrijk dat lukt me allemaal wel.
Het probleem nu is dat hij het laat zien maar staan de categorieën door elkaar in de database? Dan staan de subcategorieën op verkeerde plekken... Iemand enig idee hoe ik dit kan oplossen?
Ik ben al tijdje bezig met forum´s bouwen e.d maar uit een ding blijf ik maar niet komen, de index pagina. Ik wil de volgende opbouw maken:
School
- Docenten
- Huiswerk
- De klas
Website´s
- PHP Scripten
- Basis leren
- Gratis sites
Dit is maar een klein voorbeeldje maar ik denk dat je zo wel snap wat ik wil bereiken, een standaard forum index pagina.
Dit wil ik met de volgende database structuur:
Categorie
- id
- parent_id
- title
Momenteel laat ik daar de volgende query op los:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
$selQry =
"
SELECT
c.id AS c_id,
c.parent_id,
c.title,
t.id AS t_id,
t.user_id,
t.addDate
FROM
categorie c
LEFT JOIN
topic t
ON
c.parent_id = t.cat_id
";
?>
$selQry =
"
SELECT
c.id AS c_id,
c.parent_id,
c.title,
t.id AS t_id,
t.user_id,
t.addDate
FROM
categorie c
LEFT JOIN
topic t
ON
c.parent_id = t.cat_id
";
?>
Het gedeelte van dat topic joinen is niet heel belangrijk dat lukt me allemaal wel.
Het probleem nu is dat hij het laat zien maar staan de categorieën door elkaar in de database? Dan staan de subcategorieën op verkeerde plekken... Iemand enig idee hoe ik dit kan oplossen?
Gewijzigd op 01/09/2010 21:33:55 door Milo S
Gesponsorde koppelingen:
Kan het dat je query niet overeen komt met de vraag? Je vraag gaat over categorieën en subcategorieën. Hier komen ineens topic bij kijken?
Wat wil je nou precies met die query bereiken?
@ Jens V, nee de titel komt prima overeen met de vraag en de query.
@ Pim de Haan;
Dat de hoofd en subcategoriën uit 1 tabel worden gehaald. Het topic gebeuren zit er wat Jens V zegt wel al in maar dat werkt ook.
Het probleem wat ik nu heb is dat hij de hoofd en subcategorieën niet goed uit de database haalt, als ze niet op de goede volgorde er in zitten.
@ Pim de Haan;
Dat de hoofd en subcategoriën uit 1 tabel worden gehaald. Het topic gebeuren zit er wat Jens V zegt wel al in maar dat werkt ook.
Het probleem wat ik nu heb is dat hij de hoofd en subcategorieën niet goed uit de database haalt, als ze niet op de goede volgorde er in zitten.
Heb je al eens geprobeerd er GROUP BY parent_id bij te zetten?
@jens: daar bereik je niets mee, want hij wil een overzicht van alle categorieen met bijbehorende subcategorieen.
Wat je zou kunnen doen is alle records uit de database halen en door middel van een foreach lus een nieuwe array maken die de juiste nested elementen bevat. (zit nu op mn mobiel dus kan geen uitgebreid voorbeeld geven)
Of je gebruikt een aparte tabel voor de hoofdcategorieen.
Wat je zou kunnen doen is alle records uit de database halen en door middel van een foreach lus een nieuwe array maken die de juiste nested elementen bevat. (zit nu op mn mobiel dus kan geen uitgebreid voorbeeld geven)
Of je gebruikt een aparte tabel voor de hoofdcategorieen.
Of je maakt twee queries, de ene om de categorieën op te halen en binnen de lus van die resultaten een om de subcategorieën op te halen. Niet de elegantste, maar wel de simpelste oplossing...
Jens
Jens
@ Jens V; Ik had dat indd al geprobeerd ;).
@ Arjan, hmmm klinkt interessant kan je me beetje uitleggen hoe dat in z'n werk gaat?
@ Jens V; Dat snap ik, maar ik probeer het nu juist zo mooi mogelijk te maken :P
@ Arjan, hmmm klinkt interessant kan je me beetje uitleggen hoe dat in z'n werk gaat?
@ Jens V; Dat snap ik, maar ik probeer het nu juist zo mooi mogelijk te maken :P
Met twee lagen lukt het nog wel in 1 query, met veel meer wordt je query onmogelijk lang.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
SELECT
cat.id as cat_id,
cat.title as cat_title,
sub_cat.id as sub_cat_id,
sub_cat.title as sub_cat_title
FROM
categorie cat
JOIN
categorie sub_cat
ON
cat.id = sub_cat.parent_id
ORDER BY
cat.id
cat.id as cat_id,
cat.title as cat_title,
sub_cat.id as sub_cat_id,
sub_cat.title as sub_cat_title
FROM
categorie cat
JOIN
categorie sub_cat
ON
cat.id = sub_cat.parent_id
ORDER BY
cat.id
Gewijzigd op 03/09/2010 17:48:55 door Pim -



