login  Naam:   Wachtwoord: 
Registreer je!
 Forum

bij recursie vastgelopen (Opgelost)

Offline Ibrahim - 24/09/2007 18:13
Avatar van IbrahimPHP expert Ik heb een probleem dat misschien makkelijk opgelost kan worden, maar ik kom er niet uit. Ik heb een categories tabel in me database. Ik wil op me website een select menu weergeven met de categorieën en de subcategorieën (die ook weer subcategorieën kan hebben) erin.

Ik heb deze functie gemaakt op basis van deze array:

Plaatscode: 3409

De functie gaat door deze array en weergeeft de categorieën mooi weer in een select menu. Maar in de praktijk heb ik niet zo'n array. Ik heb deze array:

Plaatscode: 3410

Mijn vraag is, hoe kan ik de database output array omzetten naar de array die ik hierboven zelf heb gemaakt ?

6 antwoorden

Gesponsorde links
Offline Grayen - 24/09/2007 19:25
Avatar van Grayen PHP ver gevorderde Zou je de tabel even kunnen plaatsen (met phpmyadmin, zo mogelijk).

En zou je de query die je momenteel gebruikt kunnen plaatsen?

Dan kan ik je wel verder helpen.
Offline Ibrahim - 24/09/2007 20:23
Avatar van Ibrahim PHP expert tabelnaam: categories
+ cat_id
+ cat_titel
+ cat_beschrijving
+ is_sub_van

Query:
  1. SELECT cat_id, cat_titel, is_sub_van FROM categories


plain simple 
Offline ikki007 - 24/09/2007 22:04
Avatar van ikki007 Gouden medailleGouden medaille

PHP ver gevorderde
Ik heb laatst ook zoiets soortgelijks gehad.
Hiermee heeft grayen mij fantastisch geholpen!

http://www.site...e_submenus
Offline Ibrahim - 24/09/2007 22:47
Avatar van Ibrahim PHP expert ik ga mijn functie gewoon aanpassen, toch bedankt 
Offline Grayen - 24/09/2007 23:13 (laatste wijziging 25/09/2007 11:37)
Avatar van Grayen PHP ver gevorderde @siliecom14
Ik bedoelde natuurlijk dat je de SQL gaf voor de tabel met daarin de test rijen (ik neem aan dat je die had), zodat ik niet alles zelf hoef in te vullen.

Ik heb dan nu ook niet kunnen testen of hij werkt, maar waarschijnlijk zou dit moeten werken. Hij hoort nu precies de array terug te geven die jij wilde. De items zonder submenu's krijgen nu netzoals in jouw voorbeeld ook als waarde null.

  1. if(($rResult = mysql_query('SELECT cat_id, cat_titel, is_sub_van FROM categories')) !== false && mysql_num_rows($rResult) > 0)
  2. {
  3. function submenu($aCurrent, $aMenu, $aRows)
  4. {
  5. $bHasChildren = false;
  6.  
  7. foreach($aRows as $iKey => $aRow)
  8. {
  9. if($aRow['is_sub_van'] == $iCurrent)
  10. {
  11. $bHasChildren = true;
  12.  
  13. $sKey = $aRow['cat_titel'];
  14.  
  15. $aMenu[$sKey] = array();
  16.  
  17. unset($aRows[$iKey]);
  18.  
  19. $aMenu[$sKey] = submenu($aRow['id'], $aMenu[$sKey], $aRows);
  20. }
  21. }
  22.  
  23. if(!$bHasChildren)
  24. {
  25. $aMenu = null;
  26. }
  27.  
  28. return $aMenu;
  29. }
  30.  
  31. $aRows = array();
  32.  
  33. while(($aRow = mysql_fetch_assoc($rResult)) !== false)
  34. {
  35. $aRows[] = $aRow;
  36. }
  37.  
  38. $aMenu = submenu(0, array(), $aRows);
  39.  
  40. print_r($aMenu);
  41. }


Ik hoop dat het correct werkt en dat je er wat aan hebt .
Offline Ibrahim - 25/09/2007 15:28
Avatar van Ibrahim PHP expert mooi werk Grayen 

een paar aanpassingen:

parameter $aCurrent => $iCurrent
veld id => cat_id


dat ik daar niet opkwam (om me trots te houden geef ik de Ramadan wel de schuld )
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.224s