login  Naam:   Wachtwoord: 
Registreer je!
 Forum

JOINS

Offline Ibrahim - 31/07/2006 21:39 (laatste wijziging 31/07/2006 21:39)
Avatar van IbrahimPHP expert Ik ben joins aan het leren, en dacht: laat ik eens een forum lijst maken met hoofd en subcategorieen.

Nou werkt ie wel, maar niet zoals het hoort:

Citaat:
Mededelingen
Test subcategorie

Mededelingen
andere subcategorie

Crew
Dit is een crew subcategorie

Crew
Dit is een andere crew subcategorie


Ik heb nu GROUP BY geprobeerd, die weergeeft zoiets:

Citaat:
Mededelingen
Test subcategorie

Crew
Dit is een crew subcategorie


De query:

  1. <?php
  2.  
  3. SELECT t1.titel AS hoofd_titel,
  4. t1.id AS hoofd_id,
  5. t2.hoofdcategorie_id AS sub_hoofdid,
  6. t2.titel AS sub_titel
  7. FROM fo_hoofdcategorieen AS t1
  8. INNER JOIN fo_subcategorieen AS t2
  9. ON( t2.hoofdcategorie_id = t1.id)
  10. ?>


Dit weergeeft dus de bovenste resultaat

kan iemand me helpen ?

3 antwoorden

Gesponsorde links
Offline haytjes - 31/07/2006 21:58
Avatar van haytjes Gouden medailleGouden medaille

JS gevorderde
ik denk dat je het juist omgekeerd moet doen:

  1. <?php
  2. SELECT t1.titel AS hoofd_titel,
  3. t1.id AS hoofd_id,
  4. t2.hoofdcategorie_id AS sub_hoofdid,
  5. t2.titel AS sub_titel
  6. FROM fo_subcategorieen AS t2
  7. INNER JOIN fo_hoofdcategorieen AS t1
  8. ON( t2.hoofdcategorie_id = t1.id)
  9. ?>
Offline Thomas - 01/08/2006 11:33
Avatar van Thomas Moderator Je hebt meer hoofdcategorieën dan subcategorieën, dus een INNER JOIN lijkt me nooit echt geslaagd.

Een LEFT JOIN (of RIGHT JOIN als je het om wilt draaien) is hier meer op zijn plaats.

Wellicht is het een beter (?) idee om met één query de hoofdcategorieën op te halen, en dan met een andere query de subcategorieën? Het is geen doodzonde om meer dan één query te gebruiken als je dit werk bespaart.
Offline Ibrahim - 01/08/2006 20:30 (laatste wijziging 01/08/2006 21:11)
Avatar van Ibrahim PHP expert nou ik heb een left/right join geprobeerd, geen van allen hebben gewerkt 

reden dat ik een join query gebruik, is enkel en alleen om joins onder de knie te krijgen, dit is niet iets wat ik nodig heb 

-------------------------------

ik heb het opgelost gekregen, jexus had me verteld dat me query klopte maar de afhandeling fout was:

  1. <?php
  2. // connect info
  3.  
  4. $query = mysql_query("SELECT t1.titel hoofd_titel,
  5. t1.id hoofd_id,
  6. t2.hoofdcategorie_id sub_hoofdid,
  7. t2.titel sub_titel
  8. FROM fo_hoofdcategorieen t1
  9. INNER JOIN fo_subcategorieen t2
  10. ON( t1.id = t2.hoofdcategorie_id)
  11. ORDER BY t1.titel DESC
  12. ") or die(mysql_error());
  13.  
  14. $hoofdcat = '';
  15.  
  16. while( $select = mysql_fetch_assoc( $query ) )
  17. {
  18. if($select['hoofd_titel'] != $hoofdcat)
  19. {
  20. $hoofdcat = $select['hoofd_titel'];
  21. echo '<b>'. $hoofdcat .'</b><br />';
  22. }
  23.  
  24. echo $select['sub_titel'].'<hr>';
  25. }
  26. ?>
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2025 Sitemasters.be - Regels - Laadtijd: 0.208s