login  Naam:   Wachtwoord: 
Registreer je!
 Forum

breadcrumb (Opgelost)

Offline roy - 13/07/2009 15:06
Avatar van royPHP gevorderde Hi,

ik ben een breadcrumb pad aan het maken.
Aan de hand van een id worden de parents stuk voor stuk uit de database gehaald. Van te voren weet je niet hoeveel parents er zijn. Het ophalen uit de database moet stoppen als de parent 0 is.

Hoe doe je dit? misschien kan iemand een stukje pseudo code geven.


Groeten,
Roy

7 antwoorden

Gesponsorde links
Offline Wim - 13/07/2009 15:10
Avatar van Wim Crew algemeen
  1. while ($parent != 0)
  2. {
  3. // deze code wordt uitgevoerd totdat $parent gelijk is aan 0
  4. }


zo gewoon?
Offline Ontani - 13/07/2009 15:11
Avatar van Ontani Gouden medailleGouden medailleGouden medailleGouden medaille

-1
Je items zijn wss gekoppeld door in elke rij een id en parent_id te hebben.

Je haalt het item op met de huidige id. Neem hiervan de parent_id en haal opnieuw een item op met id = parent_id, haal daar opnieuw de parent_id van op en blijf dit herhalen tot je parent_id = 0 hebt.
Offline roy - 13/07/2009 15:14
Avatar van roy PHP gevorderde ik heb nu dit en dat werkt helaas niet:

  1. <?PHP
  2. function getBreadcrumbItem($breadcrumb)
  3. {
  4. $sQuery = " SELECT
  5. id,
  6. parent_id,
  7. title,
  8. isagroup
  9. FROM
  10. `page`
  11. WHERE
  12. id = '".$breadcrumb."'
  13. AND
  14. isagroup = true
  15. ";
  16.  
  17. $rs = $this->conn->GetRow($sQuery);
  18.  
  19. return $rs;
  20. }
  21.  
  22. function getBreadcrumb($breadcrumb)
  23. {
  24.  
  25. $i = 0;
  26. while($breadcrumb != '0'){
  27. //$breadcrumbItem = $this->getBreadcrumbItem($breadcrumb);
  28. $breadcrumbs[$i]['items'] = $this->getBreadcrumbItem($breadcrumb);
  29. $i++;
  30. }
  31.  
  32. var_dump($breadcrumbs);
  33. //return $breadcrumbs;
  34. }
  35.  
  36. ?>
Offline Arnold - 14/07/2009 07:53
Avatar van Arnold Nieuw lid Gewoon blijven itereren over je database zolang je id niet 0 is, al die resultaten gooi je in een array, aan het einde doe je een PHP.net: array_reverse erover heen. Dan nog even je array doorlopen met foreach, et voila!
Offline darsstar - 14/07/2009 13:34
Avatar van darsstar Nieuw lid Je kunt ook een hele andere aanpak gebruiken en alle parents met één query vinden...
Al is het ook nog wel handig om daarbij ook het parent_id/level op te slaan.

Hier staat het beter uitgelegd dan dat ik het zou kunnen doen: (met voorbeelden)
http://www.site...a-database/
lees de drie pagina's en misschien vind je het handig om te gebruiken.
Offline roy - 14/07/2009 23:18 (laatste wijziging 17/07/2009 15:35)
Avatar van roy PHP gevorderde Het lijkt meer of de while-lus niet goed is, want ik krijg een memory error.

de functie getBreadcrumb krijgt alleen de parameter van het huidige item mee.

de functie getBreadcrumbItem haalt het onderliggende item op die bij het huidige item hoort. De bedoeling is dat dit wordt herhaald totdat parent_id = 0 is.

Kan iemand me verder helpen?
Offline avdg - 19/07/2009 12:11
Avatar van avdg PHP gevorderde Misschien moet je gewoon in je database kijken  
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.183s