Bezoekers kunnen hun website toevoegen dmv een formulier.

Op dit formulier heb ik een keuzelijst gezet.
Door het script wat ik heb gemaakt worden de categorienaam met daarachter de subcategorieën weergegeven.

Maar als een categorie géén subcategorie heeft wordt hij helemaal niet weergegeven. Ik weet wel hoe dat komt maar ik weet de oplossing niet.

Wie helpt me hiermee?



<?php
	  $query = "
	  SELECT
	  c.cat_naam,
	  s.sub_naam
	  FROM categorie AS c
	  JOIN
	  subcategorie AS s
	  ON c.cat_id = s.cat_id
	  GROUP BY s.sub_naam
	  ORDER BY c.cat_naam";
	  $result = mysql_query($query) or die ("Sorry maar ik kan de categorieën niet weergeven");
	  
	 ?>
	 <select name="categorie">
	 <?php
	  while($row = mysql_fetch_object($result)){
	 ?>
     <option value="<?php echo $categorie; ?>"><?php echo $row->cat_naam.'&nbsp;->&nbsp;'.$row->sub_naam ; ?></option>
     <?php
	 }
     ?>
    </select>
Als er niks is bij subcategorie dan geeft die query toch ook niks.
Jawel

Het menu heeft 26 items waarvan er misschien 3 geen submenu items hebben.

Hij geeft dus netjes weer: auto -> algemeen

Maar bv. hobby heeft geen subcategorie en dus geeft hij hobby helemaal niet weer in het keuzelijstje.

Elsy schreef op 27.02.2007 13:37
Het menu heeft 26 items waarvan er misschien 3 geen submenu items hebben.

Ik bedoel niet helemaal niks, maar bij dit voorbeeld krijg je toch slechts 23 resultaten?
Ja, ik weet ook wel dat deze query laat zien alles wat ook een subitem heeft.
Maar hoe laat ik in diezelfde query dan de onderwerpen zien die geen subitem hebben.
Ik heb zelf nog nooit met join gewerkt. Maar ik denk dat die join er dan uit moet, alleen ik weet niet of het dan nog goed gaat. Misschien dat een van onze andere forumleden hier meer kennis van heeft.
Volgens mij heeft het niet met die join te maken, maar haal die GROUP BY s.sub_naam eens weg ;) Denk dat dat al moet helpen.
Ik dacht altijd dat je GROUP BY persé moest gebruiken.
Dus niet.....er is geen verschil in de uitvoer.

Nog steeds laat hij bv. hobby of kantoorartikelen niet zien in het lijstje.

<?php
      $query = "
      SELECT
      c.cat_naam,
      s.sub_naam
      FROM categorie AS c
      LEFT JOIN
      subcategorie AS s
      ON c.cat_id = s.cat_id
      ORDER BY c.cat_naam";
      $result = mysql_query($query) or die ("Sorry maar ik kan de categorieën niet weergeven");
      
     ?>
     <select name="categorie">
     <?php
      while($row = mysql_fetch_object($result)){
     ?>
     <option value="<?php echo $categorie; ?>"><?php echo $row->cat_naam.'&nbsp;->&nbsp;'.$row->sub_naam ; ?></option>
     <?php
     }
     ?>
    </select>

En zo dan?
[edit]
SanThe, ik denk dat je deze informatie dan wel leuk vind, is een tutorial waarin verschillende jointypes worden uitgelegd. 't is niet zo moeilijk, en de mogelijkheden met SQL tabellen worden vergroot, als je het vergelijkt met de standaard query's.

http://www.tizag.com/mysqlTutorial/mysqljoins.php
[/edit]
ON c.cat_id = s.cat_id

Ze zijn hierdoor gekoppeld. Geen koppeling dan ook geen resultaat.
@Robert

Dat was hem! Die LEFT JOIN

Ben nog niet zo lang bezig met dat JOINEN best wel lastig.

Bedankt!!

Reageren