[PHP] Mappenstructuur opbouwen

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

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hallo, ik heb een mappenstructuur ontwikkeld en dat houd het volgende in:

Een tabel met een veld 'categorie' met als waarde bijvoorbeeld '/homepage/' of /catalogus/dvd/.

Op de website wordt dat dan http://www.domeinnaam.nl/homepage/.

Aan de andere kant heb ik mappenlijst waarbij elke 'categorie' een map voorsteld,
en deze groepeer en sorteer ik op 'categorie' ASC. De mappenlijst ziet er als volgt uit en
wordt een javascript die de html zal maken met de volgende variable:
(javascript)
0, -1, "catalogus", "/catalogus/"
1, 0, "a", "/catalogus/a/"
2, 0, "b", "/catalogus/b/"
3, 0, "c", "/catalogus/c/"
4, 0, "dvd", "/catalogus/dvd/");
5, 4, "dvdmap_a", "/catalogus/dvd/dvdmap_a/"
6, 4, "dvdmap_b", "/catalogus/dvd/dvdmap_b/"

De eerste variable is de volgordenummer van 0 tot totaal aantal
De tweede variable is het volgordenummer van de map waarin de map moet komen te staan
De derde variable is de weer te geven naam van de map
De vierde variable is de categorie

Bijvoorbeeld 'dvdmap_a' heeft als volgnummer 4 en komt dan in de map 'dvd' te staan uiteindelijk.

De code die bovenstaand javascript genereerd:
(php)

do {do {do {do {do {do {do {do {do {
... } while(...);
... } while(...);
... } while(...);
... } while(...);
... } while(...);
... } while(...);
... } while(...);
... } while(...);
... } while(...);

Ik kan hiermee tot 9 mappen hoog het javascript genereren, /een/twee/drie/vier/vijf/zes/zeven/acht/negen/, nu kan ik nog wel verder gaan met het uitbreiden maar ik vind deze code achteraf gezien niet erg snel en verder uitbreiden zal het dus nog minder snel doen, ik kan de code nog wel een stuk kleiner maken maar mischien vind ik een betere oplossing. Hoofdzakelijk bekijk deze per categorie alle categorien die er boven liggen gezien per level, negen levels.

Ik heb ook andere oplossingen maar ik loop steeds aan tegen het probleem van het toewijzen van de tweede variable in het javascript door middel van php, ik moet bepalen in welke map de map moet worden weergegeven, zoals in het voorbeeld de eerste variable nummmer '0' heeft en map 'a' als tweede variable '0', staat map 'a' dus in http://www.domein.nl/catalogus/a/.

Iemand enige tips of hint's, geen script request. 8)7

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Zoek eens op wat recursieve functies zijn. :)

edit:
Bij nader inzien geloof ik dat ik je vraag niet begrijp. Of Boland begrijpt hem niet natuurlijk. :P Kun je iets duidelijker zijn?

[ Voor 62% gewijzigd door NMe op 06-02-2006 16:33 ]

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

Verwijderd

Je kunt de URL in PHP uitlezen (de REQUEST_URI dacht ik) en die vervolgens exploden op backslash... Dan kom je er ook toch?

Acties:
  • 0 Henk 'm!

  • remco_k
  • Registratie: April 2002
  • Laatst online: 17:44

remco_k

een cassettebandje was genoeg

-NMe- schreef op maandag 06 februari 2006 @ 16:29:
Zoek eens op wat recursieve functies zijn. :)
... waren ook mijn gedachten toen ik dit zag:
code:
1
do {do {do {do {do {do {do {do {do {

Alles kan stuk.


Acties:
  • 0 Henk 'm!

  • Sebazztiaan
  • Registratie: Februari 2002
  • Laatst online: 08-09 10:22

Sebazztiaan

sebas!

Misschien zou je je eens moeten verdiepen in een 'tree-structure', en recursie, in de volgende fashion:

code:
1
2
3
4
5
6
7
8
9
10
//pseudo 
FindChilds(ParentMap)
{
     functie voor mappenzoeken op hd of db
     foreach(gevondenmap als map)
     {
        Map = new Map(mapNaam, strParentMap, [], [], []...);
        Map.childs = Map.FindChilds(Map);
     }
}

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ja dat doe ik ook wel, maar ik heb als basis aleen 'categorie' genomen tot nu toe, die roep ik nu bijvoorbeeld op site aan en op meer manieren. Maar ik even recursieve functies bekeken en dan kom ik op het punt om het mapnummer ook toe te voegen, dat zou ik kunnen doen.

Acties:
  • 0 Henk 'm!

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 18-09 16:28

Bosmonster

*zucht*

Zoals het er nu uitziet probeer je een soort mod_rewrite na te bootsen door een enorme berg mappen aan te maken..

Is het niet handiger om dat dynamisch te doen met iets als mod_rewrite?

(of ben ik de zoveelste die je post niet snapt :P)

[ Voor 13% gewijzigd door Bosmonster op 06-02-2006 16:42 ]


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Ik ben bang dat ik nog steeds niet begrijp wat je probeert te doen. Je probeert de URI uit te lezen en op basis daarvan een pagina weer te geven? Of mis ik je punt?

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • curry684
  • Registratie: Juni 2000
  • Laatst online: 06-09 00:37

curry684

left part of the evil twins

-NMe- schreef op maandag 06 februari 2006 @ 16:29:
Zoek eens op wat recursieve functies zijn. :)

edit:
Bij nader inzien geloof ik dat ik je vraag niet begrijp. Of Boland begrijpt hem niet natuurlijk. :P Kun je iets duidelijker zijn?
Recursie is een charmante oplossing in dit geval, maar wel 'duur' in CPU-cycles omdat je dan een stevig aantal queries moet uitvoeren. Zeker in dit geval kun je gewoon met een intelligent opgezette loop volstaan.

Nog slimmer is echter om direct een goede hierarchische database op te zetten.

Professionele website nodig?


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ja ik heb bijvoordeeld de categorie '/contact/' in een tabel staan, en dan ga ik naar http://www.domein.nl/contact/ en dan kijk ik met request_uri naar de url en dan kijk in in de tabel waar de categorie '/contact/' is en dan kan de pagina weergeven met contact gegevens bijvoorbeeld, de basis is vrij simpel, mijn uitleg mischien minder :)

Acties:
  • 0 Henk 'm!

Verwijderd

Verwijderd schreef op maandag 06 februari 2006 @ 16:46:
Ja ik heb bijvoordeeld de categorie '/contact/' in een tabel staan, en dan ga ik naar http://www.domein.nl/contact/ en dan kijk ik met request_uri naar de url en dan kijk in in de tabel waar de categorie '/contact/' is en dan kan de pagina weergeven met contact gegevens bijvoorbeeld, de basis is vrij simpel, mijn uitleg mischien minder :)
Waarvoor gebruik je dan javascript :? Gewoon op basis van de REQUEST_URI de desbetreffende pagina includen :?

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

In dat geval kun je beter Bosmonster's tip opvolgen en eens kijken naar mod_rewrite of Multiviews, als je tenminste Apache gebruikt. Zie ook P&W FAQ - PHP voor meer info.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • curry684
  • Registratie: Juni 2000
  • Laatst online: 06-09 00:37

curry684

left part of the evil twins

Verwijderd schreef op maandag 06 februari 2006 @ 16:46:
Ja ik heb bijvoordeeld de categorie '/contact/' in een tabel staan, en dan ga ik naar http://www.domein.nl/contact/ en dan kijk ik met request_uri naar de url en dan kijk in in de tabel waar de categorie '/contact/' is en dan kan de pagina weergeven met contact gegevens bijvoorbeeld, de basis is vrij simpel, mijn uitleg mischien minder :)
Ik denk dat de uitleg dermate overvloedig was dat iedereen de basis miste 8)7

Professionele website nodig?


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ja dat doe ik op de website, ik heb voor een andere appplicatie een verkenner met alle website mappen zogezegd. En die schrijf ik met javascript op de pagina. Ik snap het ook wel met het punt van parentmap en map, ik dacht het zou handiger zijn uiteindelijk als ik alleen gebruik maken van een veld 'categorie' en dat ik daarmee zowel op de website als in andere scripts etc mappelijsten of knoppen etc kan maken.

Acties:
  • 0 Henk 'm!

Verwijderd

ik heb voor een andere appplicatie een verkenner met alle website mappen zogezegd. En die schrijf ik met javascript op de pagina.
Je schrijft mappen met javascript op die pagina? Je bedoelt je include ze met javascript? Waarom...?
ik dacht het zou handiger zijn uiteindelijk als ik alleen gebruik maken van een veld 'categorie' en dat ik daarmee zowel op de website als in andere scripts etc mappelijsten of knoppen etc kan maken.
Kun je dat misschien uitleggen??

offtopic:
Misschien een keer een cursus communicatie gaan doen, want ik snap nog echt steeds niet wat je wilt en wat je hebt... Lees je laatste post eens en bedenk je of jij het snapt als je ons was. Denk het niet :+

[ Voor 54% gewijzigd door Verwijderd op 06-02-2006 16:57 ]


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Verwijderd schreef op maandag 06 februari 2006 @ 16:53:
Ja dat doe ik op de website, ik heb voor een andere appplicatie een verkenner met alle website mappen zogezegd. En die schrijf ik met javascript op de pagina. Ik snap het ook wel met het punt van parentmap en map, ik dacht het zou handiger zijn uiteindelijk als ik alleen gebruik maken van een veld 'categorie' en dat ik daarmee zowel op de website als in andere scripts etc mappelijsten of knoppen etc kan maken.
Waarom heb je Javascript nodig voor het schrijven van die mappen? PHP kan dat ook? :)

Verder kan ik me niet aan de indruk onttrekken dat je heel erg omslachtig bezig bent. Je hoeft, als ik je goed begrijp, alleen maar een aantal URL's aan te maken op basis van je mappenstructuur, en op een andere pagina wil je die mappenstructuur uitlezen om zo de goede pagina weer te geven. Dat eerste kun je beter in PHP doen dan in Javascript lijkt me, en dat laatste kun je weer beter niet met PHP doen, maar vanuit je webserversoftware. :)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
het gaat om zogenaamde mappen, ze bestaan dus niet echt dus read dir kan ik niet mee doen.

Bovendien ik doe dat via mijn webserver Apache, en php leest vanuit mysql alle categorien van a tot z en geeft de javascript terug, vervolgens doe ik dan document.write(); en dan heb ik een mappenlijst verkenner, het werkt allemaal wel, alleen het kan inderdaad minder omslachtig alleen ik zoek even de beste oplossing, er zitten goede tips tussen :)

[ Voor 67% gewijzigd door Verwijderd op 06-02-2006 17:16 ]


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

In dat geval heb je sowieso ook geen Javascript nodig, want alles wat JS kan in dit geval, kan PHP ook. ;) Daarnaast heeft curry684 een heel nuttige tip voor je.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.

Pagina: 1