Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien
Toon posts:

Rubrieken, subrubrieken, subsubrubrieken enz

Pagina: 1
Acties:

Verwijderd

Topicstarter
Goedemiddag!

Ik ben bezig met een marktplaats script in php en mssql. Maar ben nu terecht gekomen bij het eerste probleem, ik wil namelijk dat er door de administrators rubrieken kunnen worden aangemaakt met daarbij subrubrieken en eventueel daarvan weer subsubrubrieken en dan weer subsubsubrubrieken etc.

Ik denk dat ik een select query moet maken die alle data laadt uit de rubrieken tabel en die data zal dan in een array moeten komen. Maar hoe ik dan zorg dat hij alles netjes sorteerd zou ik niet weten.

Klopt mijn denkwijze? En kan iemand verder helpen denken of heeft iemand een opzetje voor me, dat zou erg fijn zijn!


Hier een korte toelichting van de kolommen van de tabel 'rubrieken'.

- rubriek_nummer
ID van rubriek

- rubriek_naam
Naam van de rubriek

- Rubriek
Dit is een optionele kolom, vul hier een ID in van een andere rubriek als dit er een een subrubriek van is.

- volgnr
De positie ten opzichte van de andere rubrieken. Wanneer dit de eerste srubrubriek is van een andere rubriek begint volg nr weer op 1. Komt er dan weer een nieuwe rubriek (dus geen subrubriek) dan gaat hij weer verder met bijvoorbeeld 2.


Alvast bedankt!

Tim

  • reddevil
  • Registratie: Februari 2001
  • Laatst online: 06-10 14:25
Zo zou het wel kunnen als ik het even snel bekijk.

Gesorteerd ophalen kan je via een select met order by (in jouw geval) rubriek, volgnr doen.


Btw, kan dit niet beter in "Software Engineering & Architecture"?

[ Voor 19% gewijzigd door reddevil op 27-02-2008 13:54 ]


Verwijderd

Topicstarter
Hier een voorbeeldje nog een voorbeeldje van hoe het nu is opgebouwd.

code:
1
2
3
4
5
6
7
8
9
10
11
rubrieknummer    rubrieknaam            Rubriek    volgnr 
1                       Auto's                                       1 
2                       Audi                           1             1 
3                       Bmw                          1             2 
4                      Mercedes                    1             3 
5                      Kleding                                      2 
6                      Sportkleding                5             1 
7                      Vrijetijds kleding          5              2 
8                      Diverse kleding            5              3 
9                      Divers Rood                 8             1 
10                    Divers Groen                8             2


EDIT: voorbeeldje wordt er niet echt duidelijker op ik zal dalijk een beter voorbeeld sturen.

[ Voor 14% gewijzigd door een moderator op 27-02-2008 14:42 . Reden: Code tags toegevoegd ]


  • MueR
  • Registratie: Januari 2004
  • Laatst online: 12:22

MueR

Admin Devschuur® & Discord

is niet lief

Je hebt dus een pak data met een ID, Naam, ParentId en Sort? Probeer er eens een array over te maken met vorm (waar row is je mysql resultaat):
PHP:
1
$array[$row->ParentId][$row->ID] = $row;

Hoe je er vervolgens overheen mag loopen kan je zelf wel uitvissen denk ik :)

[ Voor 16% gewijzigd door MueR op 27-02-2008 14:40 ]

Anyone who gets in between me and my morning coffee should be insecure.


  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
PRG >> SEA

[ Voor 79% gewijzigd door RobIII op 27-02-2008 14:42 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • Kalentum
  • Registratie: Juni 2004
  • Laatst online: 18:42
http://www.sitepoint.com/article/hierarchical-data-database/

De manier om alles wat ook maar iets complexer is dan twee niveautjes in op te slaan. En er zijn genoeg implementaties voor de verschillende talen en databases.

  • Orphix
  • Registratie: Februari 2000
  • Niet online
Ik heb een aantal methodes gebruikt om dit te doen. Uiteindelijk ben ik er op uitgekomen dat de 'materialized path' methode het handigst is; makkelijk te implementeren en performance is goed te doen. Maar het ligt natuurlijk ook aan de eigenschappen van de hierarchie (bv verhouding tussen inserts en reads). Ik zag dit niet zo snel terug in bovenstaande linkjes dus daar kan je nog eens op googlen.

  • Laurens-R
  • Registratie: December 2002
  • Laatst online: 29-12-2024
Ik stel de methode van rutgerw voor :)

Gewoon een rubrieken tabel aanmaken met een id, parentid en een naamveldje :)

Zo kan je met wat recursieve technieken gewoon een oneindig diepe folderstructuur aanmaken. (Even los van hardware en software beperkingen).

  • mithras
  • Registratie: Maart 2003
  • Niet online
EvilB2k schreef op zaterdag 01 maart 2008 @ 17:52:
Ik stel de methode van rutgerw voor :)

Gewoon een rubrieken tabel aanmaken met een id, parentid en een naamveldje :)

Zo kan je met wat recursieve technieken gewoon een oneindig diepe folderstructuur aanmaken. (Even los van hardware en software beperkingen).
Het is juist een alternatieve methode die zich niet baseert op id en parent-id ;) Als je het artikel goed lees, wordt een methode gegeven die MPTT heet; een methode die 100x sneller is met uitlezen dan een id/parent-id manier.
Voor een hiërarchische structuur als TS bedoelt (waar uitlezen vaker gebeurt dan updaten), moet je MPTT aanhouden, simpel :)

  • Laurens-R
  • Registratie: December 2002
  • Laatst online: 29-12-2024
oeps... :/ My mistake... ik was moe blijkbaar ;)
Pagina: 1