[PHP] Systeem van mappen en submappen

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • gvanh
  • Registratie: April 2003
  • Laatst online: 02-12-2023

gvanh

Webdeveloper

Topicstarter
Hallo!

In PHP heb ik al verschillende keren een systeem gemaakt, waarin Afbeeldingen worden opgeslagen in een map (bijvoorbeeld in een CMS ter bevordering van overzichtelijkheid), maar ik twijfel of ik de juiste manier gebruik om iets dergelijks te regelen, de PHP functies om een lijst van mappen te maken, lijken namelijk niet optimaal qua snelheid.

Op dit moment gebruik ik een systeem waarin alle mappen in een MySQL db tabel staan:

--------------------------------------------
folderID INT(11) (primary KEY)
parentID INT(11)
name VARCHAR(100)
--------------------------------------------

In een recursieve functie haal ik vervolgens alle mappen uit de database, en - als die aanwezig zijn - de 'children' van de betrefende map.

Mijn vraag is nu eigenlijk: Is er een standaard programmeer-methode om een probleem als dit te tackelen? Kan ik hierover meer info vinden op de een of andere website? Ik heb zojuist wat rondgezocht via Google ... maar kon niet vinden wat ik zocht ... ik hoop dat jullie me kunnen helpen.

Alvast mijn dank!

Hartelijke groeten,

Robert-Jan.

Acties:
  • 0 Henk 'm!

  • Alex
  • Registratie: Juli 2001
  • Laatst online: 20-08 21:38
Tsja, ik doe het tegenwoordig simpeler. Ik trek de hele tabel leeg en maak in de programmmeertaal die ik gebruik een array die zo diep is als nodig en lees deze vervolgens met een scriptje uit :)
Denk dat dit véél sneller is als het uitvoeren van een onbekend anatal queries!

Deze post is bestemd voor hen die een tegenwoordige tijd kunnen onderscheiden van een toekomstige halfvoorwaardelijke bepaalde subinverte plagiale aanvoegend intentioneel verleden tijd.
- Giphart


Acties:
  • 0 Henk 'm!

  • Grijze Vos
  • Registratie: December 2002
  • Laatst online: 28-02 22:17
Alex, met jouw systeem zou ik eerder een boom van objecten genereren. Lijkt me een veel mooiere oplossing.

Op zoek naar een nieuwe collega, .NET webdev, voornamelijk productontwikkeling. DM voor meer info


Acties:
  • 0 Henk 'm!

  • Knutselsmurf
  • Registratie: December 2000
  • Laatst online: 17:10

Knutselsmurf

LED's make things better

Ik heb ooit eenzelfde systeem gemaakt, met een vergelijkbare database. Dat werkt prima en ook snel genoeg. Wel heb ik een aantal trucjes uitgehaald om het aantal queries te minimaliseren. Mijn 'scherm' bestaat net als windows-explorer uit twee delen, een tree die gedeeltelijk uitgeklapt kan zijn en een overzicht van de huidige map. De huidige tree, zoals die zichtbaar is, wordt bewaard in een sessie-variabele, zodat ik daarvoor alleen queries hoef uit te voeren als daar takken geopend worden. Voor de huidige map wil je een query uitvoeren als 'select * from tabel where parentID=iets' Die query kun je een stukje versnellen door een index te leggen op parentID.

- This line is intentionally left blank -


Acties:
  • 0 Henk 'm!

  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 14:28
Grijze Vos schreef op 12 april 2004 @ 17:33:
Alex, met jouw systeem zou ik eerder een boom van objecten genereren. Lijkt me een veel mooiere oplossing.
Meestal gaan eenvoudige scriptingstalen als PHP sneller om met een grote array dan met vele objecten die in en aan elkaar hangen.

Acties:
  • 0 Henk 'm!

  • maartenba
  • Registratie: November 2001
  • Laatst online: 29-07-2024
Heb ook zo eens een projectje gehad, hier was de tabelstructuur zo:
ID, Name, ParentID

Die werden dan met een SELECT * FROM tabel ingelezen in een Array, en die Array werd dan x keer doorlopen... Niet echt efficiënt natuurlijk, maar voor een kleinschalig dingetje was dit voldoende...

Acties:
  • 0 Henk 'm!

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

(jarig!)
Pagina: 1