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>
@Robert: Ik zal die link eens op mijn gemak gaan bekijken. Bedankt.

@Elsy: Het zijn ook de sixties niet meer. ;-) Succes verder.
SanThe schreef op 27.02.2007 14:03
ON c.cat_id = s.cat_id

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


Jawel, daarvoor is de LEFT JOIN (zie ook Elsy haar enthousiaste reactie) in het leven geroepen. Lees de tut maar een (de JOIN en LEFT JOIN worden daar behandeld), misschien heb je er voor jezelf ook nog wel wat aan.

[edit]
Beetje te laat, je had het al ontdekt zie ik. Succes met die link ;)
[/edit]
@Robert

Bedankt voor de link, is duidelijk uitgelegd.
Even een toevoeging, volgens mij was JOIN hetzelfde als INNER JOIN, het resultaat heeft hetzelfde als een query die er zo uit ziet:

SELECT 
    c.kolom1,
    d.kolom1 
FROM 
    ctabel AS c,
    dtabel AS d
WHERE 
    c.kolom1=d.kolom1

Dit wil zeggen dat er alleen resultaat is wanneer de kolom1 in beide tabellen voorkomt.


Dan heb je de LEFT JOIN, voor deze toelichting moet ik wel even noemen dat deze uitgaat van de 1st genoemde tabel bij de ON. Bijv in die van Elsy de tabel categorie.
Elke Subcategorie heeft een categorie, dus in de LEFT JOIN krijg je alle subcategoriën die een categorie hebben + Alle categorieën.


Bij de RIGHT JOIN werkt het precies andersom, en in het voorbeeld van Elsy gaat die dan op zoek naar de categorieën die voorkomen in de subcategorie tabel. Omdat niet alle categorieën subcategorieën onder zich hebben staan, zal het resultaat dus niet alle categoriën bevatten.

(hopelijk is dit duidelijk, ff zoeken hier, tussen de tuts, anders maak ik er nog ff een tutorial van denk 'k)
@Robert: Zeer duidelijk. Bedankt.

Reageren