login  Naam:   Wachtwoord: 
Registreer je!
 Forum

select lijst genereren

Offline marten - 13/06/2007 14:02 (laatste wijziging 13/06/2007 14:03)
Avatar van martenBeheerder Ik zit er waarschijnlijk al te lang naar te kijken zodat ik erover lees maar wat klopt er niet aan de volgende code:

  1. <?php
  2. $sQuery = 'SELECT * FROM media_type WHERE `show` = 1 AND parent = 0';
  3. $rResult = $_SESSION['db']->query($sQuery);
  4.  
  5. $list = '<option value="">Kies uw categorie...</option>';
  6.  
  7. foreach ($rResult as $row) {
  8. $list .= '<option value="' .$row['media_type_id']. '">' .$row['naam']. '</option>';
  9.  
  10. $sQuery_parent = 'SELECT * FROM media_type WHERE `show` = 1 AND parent = ' . $row['media_type_id'];
  11. $rResult_parent = $_SESSION['db']->query($sQuery_parent);
  12.  
  13.  
  14. foreach ($rResult_parent as $sub) {
  15. $list .= '<option value="' .$sub['media_type_id']. '">--' .$sub['naam']. '</option>';
  16. }
  17.  
  18.  
  19. }
  20. ?>


Ik heb de volgende tabel.

media_type_id int(2)
naam varchar(50)
parent int(2)
show int(1)

Hierin staan de volgende waardes:

media_type_id____naam_____parent_____show
---------------------------------------------
________1_______Boeken_____0___________1
________2_______Laptops____0___________1
________3_______HP_________2___________1
________4_______Toshiba_____2___________1
________5_______ICT________1___________1
________6_______Talen______1___________1

Ik wil nu een lijstje generen met bovenstaande code.

Boeken
- ICT
- Talen
Laptops
- Toshiba
- HP

Ik krijg overigens de gegevens uit de eerste foreach wel goed in het lijstje maar de 'subcats' niet.Wie ziet de fout?

5 antwoorden

Gesponsorde links
Offline ArndJan - 13/06/2007 14:06
Avatar van ArndJan PHP interesse Je moet een nieuwe database verbinding opzetten.
Je overschrijft in de 2 query je 1e recordset en deze kan dan in de 1e loop niet meer gevonden worden en loopt dan maar 1 keer door de loop. 
Offline marten - 13/06/2007 14:10
Avatar van marten Beheerder ik overschrijf volgens mij helemaal niks. De eerste recordset zijn namelijk:

$sQuery, $rResult en $row

de tweede recordset is:
$sQuery_parent. $rResult_parent en $sub
Offline ArndJan - 13/06/2007 15:43
Avatar van ArndJan PHP interesse een recordset zal nooit in een variabele komen te staan maar word direct uitgelezen op de server dit is een 'handige' tool van MySql zelf.

Je moet opnieuw een connectie maken in je lus en dan moet het werken! 
Offline Mad_Mike - 13/06/2007 15:45
Avatar van Mad_Mike PHP beginner doe eens een var_dump(); van de verschillende recordsets. Dan kan je gemakkelijk zien of deze de verwachte waarden hebben. Daarna kan je verder kijken. Ik zie het niet zo 1 2 3
Offline marten - 13/06/2007 15:55 (laatste wijziging 13/06/2007 15:59)
Avatar van marten Beheerder var_dump 1 ($rResult):
Citaat:
object(PDOStatement)#10 (1) {
["queryString"]=>
string(56) "SELECT * FROM media_type WHERE `show` = 1 AND parent = 0"
}


var_dump 2 ($rResult_parent):
Citaat:
bool(false)
bool(false)


Ben nu een beetje verder voorbordurend op ArndJan's reply. PDO bevat een functie closeCursor om de resultset weer beschikbaar te maken. Deze heb ik nu toegepast. Maar nu krijg ik alleen de boeken met diens subcategorien terug. Waarschijnlijk omdat deze in die foreach nog staat. Ik zal deze dus buiten die foreach zetten. Dit ga ik nu ff testen.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.199s