[mysql/php]diepte creëren

Pagina: 1
Acties:
  • 195 views sinds 30-01-2008
  • Reageer

Onderwerpen


Acties:
  • 0 Henk 'm!

  • simon
  • Registratie: Maart 2002
  • Laatst online: 11:40
Ik ben bezig aan een cms en heb daar een rating systeem.. Er bestaan verschillende 'mogelijkheden' van ratings. Dus je kan bijvoorbeeld kiezen uit a, b of c. Maar onder a b en c bevinden zich nog 3 niveaus waarvan de laatste de items zijn.

Ik wil met een join al die tweede niveaus zichtbaar maken.. Maar, omdat ik ze 'link' via de id kan ik dus niet plat een JOIN maken, want hoe weet ik dan de id's uit de diepere lagen.. Even tekeningetje gemaakt om uit te leggen :)


Afbeeldingslocatie: http://www.delacourt.nl/overview.gif


Waarbij de rondjes staan voor een overzicht van items.. De items zelf worden na het drukken op die link weergegeven.. Als je bijvoorbeeld op a zou drukken, krijg je een overzicht van allemaal categoriën, waarin een 2de laag zit (wat in de tekening de rondjes zijn). Als je dan op de 'rondjes' drukt, krijg je dus het overzicht in items.


Hoe kan ik dit het best aanpakken?

|>


Acties:
  • 0 Henk 'm!

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 17:06

gorgi_19

Kruimeltjes zijn weer op :9

tabelnaam
ID
ParentID
Naam
....

En zo moet je dan een boom kunnen maken mbv een recursieve functie.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Acties:
  • 0 Henk 'm!

  • simon
  • Registratie: Maart 2002
  • Laatst online: 11:40
gorgi_19 schreef op 07 March 2003 @ 16:23:
tabelnaam
ID
ParentID
Naam
....

En zo moet je dan een boom kunnen maken mbv een recursieve functie.
Dat ID's enzo lukt me wel... maar daarna struikel ik even :)

|>


Acties:
  • 0 Henk 'm!

  • whoami
  • Registratie: December 2000
  • Laatst online: 16:32
Waar struikel je dan even?
Je bent zwaar onduidelijk..... (ook in je startpost).

Je kunt dmv self-joins enzo en een recursieve functie de children van een parent ophalen.

[ Voor 37% gewijzigd door whoami op 07-03-2003 16:27 ]

https://fgheysels.github.io/


Acties:
  • 0 Henk 'm!

  • Helmet
  • Registratie: Januari 2002
  • Laatst online: 21-08 15:00
bedenk wel dat zo'n structuur niet de snelste is :)
op phpfreaks.nl staat een tutorial hierover trouwens

Icons are overrated


Acties:
  • 0 Henk 'm!

  • thomaske
  • Registratie: Juni 2000
  • Laatst online: 17-09 07:55

thomaske

» » » » » »

Zoek eens op 'boom' en 'tree' icm met php en mysql, dan kom je een heel eind...

Brusselmans: "Continuïteit bestaat niet, tenzij in zinloze vorm. Iets wat continu is, is obsessief, dus ziekelijk, dus oninteressant, dus zinloos."


Acties:
  • 0 Henk 'm!

  • simon
  • Registratie: Maart 2002
  • Laatst online: 11:40
Helmet schreef op 07 March 2003 @ 16:30:
bedenk wel dat zo'n structuur niet de snelste is :)
op phpfreaks.nl staat een tutorial hierover trouwens
op phpfreakz.nl kwam ik hier op:

http://www.phpfreakz.nl/artikelen.php?aid=84&page=1
en
http://www.phpfreakz.nl/artikelen.php?aid=17
daarop..

maar dat schoot niet echt op :(

Is het beter om mijn structuur (tot nu toe allemaal losse tabellen) te wijzigen of is dat stom en vertraagt dat alleenmaar?

Verder is dat 'recursief' me niet helemaal duidelijk. Btw, sorry voor de onduidelijkheid in mijn openings post, maar kweet niet helemaal hoe ik dit uitleggen moet :)

[ Voor 15% gewijzigd door simon op 07-03-2003 16:35 ]

|>


Acties:
  • 0 Henk 'm!

  • whoami
  • Registratie: December 2000
  • Laatst online: 16:32
Ik denk wel dat het beter is om uw structuur volledig te wijzigen, naar iets zoals gorgi reeds voorstelde...

https://fgheysels.github.io/


Acties:
  • 0 Henk 'm!

  • simon
  • Registratie: Maart 2002
  • Laatst online: 11:40
whoami schreef op 07 maart 2003 @ 16:35:
Ik denk wel dat het beter is om uw structuur volledig te wijzigen, naar iets zoals gorgi reeds voorstelde...
Hmm, dat betekent dus alles in een tabel...

Maar, de id's zijn autoincreement, maar dat kan maar 1 rij zijn. Daar zit dus mijn 'stop' op dit moment.. :P

|>


Acties:
  • 0 Henk 'm!

  • whoami
  • Registratie: December 2000
  • Laatst online: 16:32
Simon schreef op 07 March 2003 @ 16:40:
[...]

Hmm, dat betekent dus alles in een tabel...

Maar, de id's zijn autoincreement, maar dat kan maar 1 rij zijn. Daar zit dus mijn 'stop' op dit moment.. :P


Het veld parentId mag je geen autoincrement maken, en daaar mag je ook geen unique index op leggen.

https://fgheysels.github.io/


Acties:
  • 0 Henk 'm!

  • simon
  • Registratie: Maart 2002
  • Laatst online: 11:40
whoami schreef op 07 March 2003 @ 16:41:

[...]


Het veld parentId mag je geen autoincrement maken, en daaar mag je ook geen unique index op leggen.
Sorry, denkfout van mij :)

|>


Acties:
  • 0 Henk 'm!

  • GraasGast
  • Registratie: Oktober 2000
  • Laatst online: 02-09 19:22

GraasGast

Analogue Heaven

Het veld parent_id refereerd aan het veld id van een andere record, om aan te geven dat het een child is van die record. Een record kan meerdere childs hebben, dus meerdere records hebben dan hetzelfde parent_id.

Acties:
  • 0 Henk 'm!

  • simon
  • Registratie: Maart 2002
  • Laatst online: 11:40
Ok, ik ben nu uit mijn structuur... Maar ben er nog niet uit hoe ik dat in php doe, mijn idee:

Je selecteert gewoon alles, elk niveau dat je hoger gaat, echo je ze.. Dus je loopt door elk niveau heen..

Maar moet je nu alles in een keer selecteren, of elk niveau opnieuw?

|>


Acties:
  • 0 Henk 'm!

  • Lurge
  • Registratie: Maart 2000
  • Niet online

Lurge

ActueleWind

Het nadeel aan deze manier is (volgen mij) dat je de gegevens nou niet in 1 query direct goed op je scherm kan zetten. Je moet altijd 2 query's doen of alles eerst in een array stampen.
(als iemand een goede query heeft waarmee het in 1 keer kan dan houd ik mee aanbevolen :))

ActueleWind


Acties:
  • 0 Henk 'm!

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 17:06

gorgi_19

Kruimeltjes zijn weer op :9

Lurge schreef op 07 March 2003 @ 16:53:
Het nadeel aan deze manier is (volgen mij) dat je de gegevens nou niet in 1 query direct goed op je scherm kan zetten. Je moet altijd 2 query's doen of alles eerst in een array stampen.
(als iemand een goede query heeft waarmee het in 1 keer kan dan houd ik mee aanbevolen :))
Is dat erg? Vraag het me af...
Het principe is een functie die zichzelf aanroept en op die manier een boom bouwt.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Acties:
  • 0 Henk 'm!

  • simon
  • Registratie: Maart 2002
  • Laatst online: 11:40
Lurge schreef op 07 March 2003 @ 16:53:
Het nadeel aan deze manier is (volgen mij) dat je de gegevens nou niet in 1 query direct goed op je scherm kan zetten. Je moet altijd 2 query's doen of alles eerst in een array stampen.
(als iemand een goede query heeft waarmee het in 1 keer kan dan houd ik mee aanbevolen :))
Jah, en ik wil niet al te veel query's. Maar hoe ik dat nu in php rond krijg weet ik nog niet, wat ik heb gevonden helpt me niet opweg.

[ Voor 68% gewijzigd door simon op 07-03-2003 16:58 ]

|>


Acties:
  • 0 Henk 'm!

  • simon
  • Registratie: Maart 2002
  • Laatst online: 11:40
Ok, gevonden wat ik zocht.. Maar ik kom nog steeds uit op 2 query's... Verder, bedankt voor jullie hulp :) nu alleen zorgen dat het goed uitkomt met de layout :)

[ Voor 23% gewijzigd door simon op 07-03-2003 17:23 ]

|>

Pagina: 1