categorieën en sub categorien in kruimelpad

Status
Niet open voor verdere reacties.

Paulaccess2007

Gebruiker
Lid geworden
8 okt 2012
Berichten
5
tabel.jpg

Ik heb een categorie tabel met de volgende indeling:
id code naam leverancier_id parent_id

Nu wil ik graag hieruit een url opbouwen en wegschrijven in een nieuwe tabel met artikelnummer en url.

In mijn tabel "artikel" heb ik alleen een verwijzing naar de eind categorie in onderstaand voorbeeld id_7358.

bijvoorbeeld: \Pijn, Griep en Ongemakken\Hoofd,Gewricht,Spier etc.\Spierpijn
De id's zijn: \7351\7355\7358

Ik hoop dat iemand mij hiermee op weg kan helpen.
 
Maar hoe moet nu die url er uit gaan zien?
 
de url opbouw

de nieuwe tabel moet bevatten: 2 Kolommen
artikelcode urlpath
10 \Pijn, Griep en Ongemakken\Hoofd,Gewricht,Spier etc.\Spierpijn

in het voorbeeld bevat de kolom "urlpath" dus een samenstelling van drie categorie_id's.

De zoekactie begint in de laatste (eind) categorie en wordt terug naar boven opgebouwd tot aan de root categorie.

De root categorie is de cat_id zonder een parent_id.

Ik hoop dat het wat duidelijker wordt..

Groeten,

Paul
 
Daarmee snap ik het url deel nog steeds niet; in een url mogen geen spaties zitten, en die zitten er bij jou wel in.
 
Beste Michel,
Da's heel scherp. Je hebt gelijk. De url is eigenlijk de naam van de betreffende categorie.
Aan de hand van de categorie naam wordt de betreffende categorie in de shop gevonden en daar worden de categorieën omgezet in een vriendelijke url.
 
Dus wil je nu een echte url genereren?
 
Sorry dat ik zoveel verwarring sticht door het een url te noemen maar ik zal het proberen te verduidelijken vast bedankt voor je geduld.

Ik weet uit de artikelen tabel de leveranciersCategorie_id. Met deze id moet ik de naam en de bijbehorende parent_id opzoeken. Met de gevonden parent_id zou ik de matchende id kunnen vinden met de bijbehorende naam en de parent_id. En zo verder tot de parent_id leeg is. Nu moeten de gevonden namen uit de tabel weergegeven worden met de laatst gevonden naam als eerste en dan de vorige en de vorige enzovoort tot de eerst gevonden naam vooraan staat. Het scheidingsteken tussen de namen mag alles zijn bv een puntkomma.

Groeten,

Paul
 
Het probleem met dit soort problemen is dat je op voorhand niet weet hoeveel takken je hebt, al wekt je afbeelding de indruk dat er 3 niveaus zijn. Dat blijkt althans uit het veld Code, wat prima te gebruiken is in een routine. Die zou dan naar de lengte van de code moeten kijken om te zien hoe vaak een opzoeklus moet worden uitgevoerd. De waarden die je opzoekt kun je in een matrix zetten, die je definieert op basis van de lengte. Ik kan mij voorstellen dat je de Hoofdcategorie en Subcategorie niet apart opslaat, maar de artikelen uit die subcategorieën wel.
Voor de code 231 maak je dus een matrix variabele van 3 dimensies. Die moet eerst de eigen naam uitlezen en de ParentID, vervolgens de code 23 opzoeken en de ParentID lezen, en als laatste de Hoofdcategorie uitlezen in de derde dimensie van de matrix.
Je krijgt dan een matrix met de volgende waarden:
tmp(1)=Diarree
tmp(2)=Maag en Spijsvertering
tmp(3)=Pijn, Griep en Ongemakken.
Deze matrix lees je in een lus in omgekeerde volgorde uit, en wijs je dan aan een string variabele toe.
 
Beste Michel,

Dank je voor je uitleg. Ik ben net 2 weken bezig met access en voor mijn gevoel al ver gekomen maar nu zie ik toch echt water branden. Het zou ook in de toekomst zo kunnen zijn dat er 4 of 5 takken oftewel niveaus zijn.
Ik denk dat je dit in vb moet maken? Dan moet ik voorlopig even afhaken.

Dank voor je moeite.

Groeten,

Paul
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan