Ik ben momenteel bezig met het maken van een simpele php site waarbij ik graag gebruik wil maken van "mooie" links.Nu wil ik graag deze mooie pad terugzoeken in een boomstructuur in de database, alleen door mijn te verwaarlozen ervaringen met databases loop ik tegen wat problemen aan
Ik heb de volgende tabel in de database:
Hierbij kan ik dus een structuur hebben zoals:
cursussen (page_id: 1 | parent_id: '' )
cursus1 (page_id: 2 | parent_id: 1 )
cursus2 (page_id: 3 | parent_id: 2 )
inschrijfformulier (page_id: 4 | parent_id: 3 )
Mijn probleem wat ik nu heb is dat ik graag afhankelijk van de boompad de correct page_id terug zou willen hebben, een mogelijk een boompad in dit voorbeeld zou kunnen zijn: "cursussen/cursus1" of "cursussen/cursus2/inschrijfformulier". Waarbij dan respectievelijk de volgende page_id als resultaat zouden terug moeten komen: page_id=2 en page_id=4.
Nu heb ik verschillende ding al reeds geprobeerd zoals het ophalen van alle pagina's dmv. de volgende query:
Vervolgens hak ik de url in mootjes dmv. explode( '/', $_GET[ 'path' ] ). Daarna loop ik de recordset door dmv. een for-loop, van boven naar beneden door -- omdat van beneden naar boven niet lukte.
Nu werkt dit dus niet en ik vroeg me nu af hoe ik dit het beste zou kunnen oplossen. Ik heb ook gekeken naar Data boomstructuur idee, alleen hierbij heb ik vervolgens hetzelfde probleem als ik het goed begrepen heb.
Ik heb de volgende tabel in de database:
SQL:
1
2
3
4
5
6
7
8
9
| CREATE TABLE `pages` ( `page_id` int(11) NOT NULL auto_increment, `parent_id` int(11) default NULL, `title` varchar(255) NOT NULL default '', `shortname` varchar(255) default NULL, PRIMARY KEY (`page_id`), KEY `parent_id` (`parent_id`), CONSTRAINT `fk_page_parent_id` FOREIGN KEY (`parent_id`) REFERENCES `pages` (`page_id`) ON DELETE CASCADE ) TYPE=InnoDB; |
Hierbij kan ik dus een structuur hebben zoals:
cursussen (page_id: 1 | parent_id: '' )
cursus1 (page_id: 2 | parent_id: 1 )
cursus2 (page_id: 3 | parent_id: 2 )
inschrijfformulier (page_id: 4 | parent_id: 3 )
Mijn probleem wat ik nu heb is dat ik graag afhankelijk van de boompad de correct page_id terug zou willen hebben, een mogelijk een boompad in dit voorbeeld zou kunnen zijn: "cursussen/cursus1" of "cursussen/cursus2/inschrijfformulier". Waarbij dan respectievelijk de volgende page_id als resultaat zouden terug moeten komen: page_id=2 en page_id=4.
Nu heb ik verschillende ding al reeds geprobeerd zoals het ophalen van alle pagina's dmv. de volgende query:
code:
1
| SELECT page_id, parent_id, title, shortname FROM `pages` |
Vervolgens hak ik de url in mootjes dmv. explode( '/', $_GET[ 'path' ] ). Daarna loop ik de recordset door dmv. een for-loop, van boven naar beneden door -- omdat van beneden naar boven niet lukte.
PHP:
1
2
3
4
5
6
| $pagina_naam = $record[ 'shortnaam' ]; // pagina naam if ( array_key_exists( $pagina_naam, $pad_structuur ) { $result[] = $record[ 'page_id' ]; } $page_id = $result[ count( $result ) ]; // resultaat van het pad opslaan en gebruiken. |
Nu werkt dit dus niet en ik vroeg me nu af hoe ik dit het beste zou kunnen oplossen. Ik heb ook gekeken naar Data boomstructuur idee, alleen hierbij heb ik vervolgens hetzelfde probleem als ik het goed begrepen heb.
[ Voor 12% gewijzigd door alienfruit op 19-05-2005 11:09 ]