[SQL]1 query voor categorieen, hoe subcats ?

Pagina: 1
Acties:
  • 47 views sinds 30-01-2008

  • Glashelder
  • Registratie: September 2002
  • Niet online

Glashelder

Anti Android

Topicstarter
Ik denk dat de titel een beetje een beetje raar is, maar weet niet echt iets te bedenken hiervoor.

Het volgende is het probleem. Ik ben met m'n eigen forum bezig. Voor de forum index wil ik 1 query gebruiken om de Catogorieen (cats) en de subcatogorieen (sub) uit m'n database te halen. Ik gebruik hier de volgende query voor:
SQL:
1
2
3
4
5
6
7
8
9
SELECT forum_cats.beschrijving, 
    forum_cats.acces_level,
    forums.forum_id, 
    forums.naam,
    forums.beschrijving,
    forum_cats.forum_cat_id = forums.forum_cat_id
    FROM
    forum_cats,
    forums


Ik loop nu tegen een probleem op. Bij het opbouwen van de forum index wil ik natuurlijk eerst de catogorieen laten zien, met onder elke catogorie de subcatogorieen.

Wat ik hiervoor bedacht heb was een while-in-while (ofzo :D), m.a.w., 1 while om de catogorieen te genereren, en de 2e while draait dus IN de 1ste om de subcatogorieen te genereren.

Alleen heb ik nu natuurlijk maar 1 query, en die geeft de catogorieen terug EN de subcatogorieen. Heb ik dus 2 catogorieen en 3 subcatogorieen, dan loopt de 1ste while natuurlijk 5 keer, want bovenstaande query geeft 5 resultaten.

Die eerste while moet natuurlijk alleen de catogorieen weergeven, zonder de subcatogorieen.

Hoe pak ik dit aan?

als eventuele code nodig is dan zal ik deze posten, denk niet dat mijn code tot nu toe nuttig zal zijn :)

PV 4915wp op oost, 2680 wp op west, 1900 wp op zuid. pvoutput - AUX 8 kW bi bloc


  • bartvb
  • Registratie: Oktober 1999
  • Laatst online: 17-08 13:41
Ligt er aan hoe je de categorieen in de DB hebt zitten. Je kan iets doen als:

forum_cat = '010304'

Wat wil zeggen dat dit forum 4 is in subcategorie 3 in categorie 1. Op deze manier kan je in 1x een gesorteerde lijst uit je forums tabel halen, een lijst met categorieen is in principe niet meer nodig. Ook kan je natuurlijk alleen dingen uit categorie 1 ophalen door alleen spul te pakken met iets als: left(2, forum_cat) = '01'

Maar er zijn legio mogelijkheden om dit soort hierarchische constructies te bouwen.

  • whoami
  • Registratie: December 2000
  • Laatst online: 22:54
Natuurlijk geeft jouw query 5 resultaten terug.
Je moet nl. je tabellen joinen.
Hoe je dat kan doen, kan je in eender welke SQL tutorial terugvinden.

Daarnaast is SQL bedoeld om data te manipuleren (op te halen, veranderen, toe te voegen, etc...), niet om de layout ervan te verzorgen.

Ik stel voor dat je allereerst eens een goeie SQL tutorial opzoekt, en daar eens eea in leest enzo...

[ Voor 16% gewijzigd door whoami op 15-09-2003 14:46 ]

https://fgheysels.github.io/


Dit topic is gesloten.