login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Categorie indeling

Offline SomaQan - 01/07/2007 02:15 (laatste wijziging 01/07/2007 02:17)
Avatar van SomaQanPHP beginner Hier ben ik weer.

ik zit nu een beetje vast. Ik heb verschilende categorie's aangemaakt, en ze staan in me database, nu wou ik elke categorie met de categorie naam die aan die categorie is verbonden netje weergeven. Maar ik vraag me af hoe ik dat kan doen 1x categorie weergeven lukt wel alleen ik heb stuk of 10 categorie die ik op een pagina wil weergeven met de juiste inhoud.

tenslote zijn de 10 categorie's niet telkens de zelfde dus ik wil niet elke dag aan mijn query sleutelen.

ik dacht aan zo iets
  1. <?
  2. $sql = mysql_query("SELECT * FROM `pagina` WHERE `categorie` = '" . mysql_real_escape_string($string) . "' ORDER BY id DESC");
  3. ?>


alleen om dit 10x te herhalen vond ik niks.

Iemand die mij kan helpen van dit ingewikkelde zaak

11 antwoorden

Gesponsorde links
Offline jelle - 01/07/2007 02:37 (laatste wijziging 01/07/2007 02:44)
Avatar van jelle PHP beginner kan je dat niet met een while??
Offline JBke - 01/07/2007 09:07
Avatar van JBke PHP gevorderde dat doe je idd met een while zoals ik aan jelle in zijn script heb laten zien als volgd:
  1. <?php
  2. $sql = mysql_query("SELECT * FROM `pagina` WHERE `categorie` = '" . mysql_real_escape_string($string) . "' ORDER BY id DESC");
  3.  
  4. while ($result = mysql_fetch_assoc($sql)) {
  5.  
  6. // hier je code die je voor elke opgehaalde rij wil uitvoeren
  7.  
  8. }
  9. ?>


een SELECT selecteerd reeds alle rijen die voldoen aan de voorwaarde achter je WHERE nu moet je enkel nog rij per rij ophalen zolang, WHILE, er rij-resultaten zijn.

success
Offline Rik - 01/07/2007 10:26
Avatar van Rik Gouden medailleGouden medaille

Crew algemeen
Kan je dan niet beter gewoon alles uit de tabel halen?
Offline SomaQan - 01/07/2007 13:55
Avatar van SomaQan PHP beginner Volgens mij snappen jullie niet wat ik precies wil, kijk ik heb 10 of 11 , 12 categorie's en die wil ik allemaal weergeven met de juist inhoud maar ik wil niet elkedag aan mijn query sluitelen.

Met een WHILE kan dat ja maar dan moet ik telkens achter de WHERE de categorie naam zetten en dat is sleutelen aan mijn query
Offline Ultimatum - 01/07/2007 14:00
Avatar van Ultimatum PHP expert Je hebt een dubbel while nodig in dit geval.

Eerst ga je alle categrorieen op halen en dan heb je ze als het ware onder elkaar staan. Nu ga je met je 2de query (binnen de eerste) alle inhoud ophalen aan de hand van je 1ste query. Dus je moet een where hebben dat op hetvolgende lijkt: WHERE cat = ". $fetch['van eerste query']. En vanuit hier moet je verder
Offline SomaQan - 01/07/2007 14:41 (laatste wijziging 01/07/2007 14:42)
Avatar van SomaQan PHP beginner Ik heb nu dit geprobeert maar ik krijg error's en ik denk ook eigenlijk niet dat dit gaat werken iemand die mij kan verlossen 

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE `'Engeland'` = ''' at line 1

  1. <?php
  2. include('config.php');
  3. include('systeem.php');
  4.  
  5. $sql = mysql_query("SELECT * FROM menu ") or die(mysql_error());
  6.  
  7. while ($show = mysql_fetch_object($sql)){
  8.  
  9. $menu_naam = htmlspecialchars($show->menu_naam);
  10.  
  11. }
  12.  
  13. $sql2 = mysql_query("SELECT * FROM menu ") or die(mysql_error());
  14. while ($zien = mysql_fetch_object($sql2))
  15. {
  16.  
  17.  
  18. $menu = htmlspecialchars($zien->menu);
  19.  
  20. }
  21.  
  22. $sql3 = mysql_query("SELECT * FROM `pagina` ORDER BY id DESC WHERE `'".$menu_naam."'` = '".$menu."'") or die(mysql_error());
  23.  
  24. while ($var = mysql_fetch_object($sql3))
  25. {
  26.  
  27. $pagina_naam = htmlspecialchars($var->pagina_naam);
  28. $menu = htmlspecialchars($var->menu);
  29.  
  30. echo'<table>
  31. <tr>';
  32. echo '<td> - <a href=index.php?pagina=index&pagina_naam='.$pagina_naam.'><font color="#ff0000">
  33. '.ucfirst(htmlspecialchars($var->pagina_naam)).':</font> </a></td>';
  34. }
  35. echo'</tr>
  36. </table>';
  37. ?>
Offline Ultimatum - 01/07/2007 15:25 (laatste wijziging 01/07/2007 15:29)
Avatar van Ultimatum PHP expert Omdat je ook niet leest wat ik zei. Ik zei een while binnen een while. Jij doet het erbuiten. En waarom 2 queries die je in 1 kan doen?

En wat dacht je van eens tabs gebruiken?

Edit:
  1. <?php
  2. include('config.php');
  3. include('systeem.php');
  4.  
  5. $sql = mysql_query("SELECT menu_naam, menu FROM menu ") or die(mysql_error());
  6.  
  7. while ($show = mysql_fetch_object($sql)){
  8.  
  9. $show->menu_naam = htmlspecialchars($show->menu_naam);
  10. $show->menu = htmlspecialchars($show->menu);
  11.  
  12. $sql3 = mysql_query("SELECT pagina_naam, menu FROM pagina ORDER BY id DESC WHERE '". $show->menu_naam ."' = '". $show->menu ."'") or die(mysql_error());
  13.  
  14. while ($var = mysql_fetch_object($sql3))
  15. {
  16.  
  17. echo'<table>
  18. <tr>';
  19. echo '<td> - <a href=index.php?pagina=index&pagina_naam='. $var->pagina_naam .'><font color="#ff0000">
  20. '.ucfirst(htmlspecialchars($var->pagina_naam)).':</font> </a></td>';
  21. }
  22.  
  23. echo'</tr>
  24. </table>';
  25. }
  26. ?>
Offline SomaQan - 01/07/2007 15:48
Avatar van SomaQan PHP beginner @Hierboven, in table menu zit geen menu, alleen menu_naam ik heb het ff veranderd naar zo

  1. <?php
  2. include('config.php');
  3. include('systeem.php');
  4.  
  5. $sql = mysql_query("SELECT menu_naam FROM menu ") or die(mysql_error());
  6.  
  7. while ($show = mysql_fetch_object($sql)){
  8.  
  9. $show->menu_naam = htmlspecialchars($show->menu_naam);
  10.  
  11.  
  12. $sql3 = mysql_query("SELECT pagina_naam, menu FROM pagina ORDER BY id DESC WHERE '". $show->menu_naam ."' = '". $var->menu ."'") or die(mysql_error());
  13.  
  14. while ($var = mysql_fetch_object($sql3))
  15. {
  16. $var->menu = htmlspecialchars($var->menu);
  17.  
  18. echo'<table>
  19. <tr>';
  20. echo '<td> - <a href=index.php?pagina=index&pagina_naam='. $var->pagina_naam .'><font color="#ff0000">
  21. '.ucfirst(htmlspecialchars($var->pagina_naam)).':</font> </a></td>';
  22. }
  23.  
  24. echo'</tr>
  25. </table>';
  26. }
  27. ?>


Maar ik krijg weer een error

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE 'Boom leuk' = ''' at line 1
Offline Ultimatum - 01/07/2007 15:54
Avatar van Ultimatum PHP expert Alle dingen moet in een bepaalde volgorde

WHERE moet voor ORDER BY
Offline SomaQan - 01/07/2007 16:17
Avatar van SomaQan PHP beginner Geen error meer alleen ik krijg niks tezien 
Offline Koen1 - 01/07/2007 16:59 (laatste wijziging 01/07/2007 17:01)
Avatar van Koen1 Nieuw lid
  1. WHERE '". $show->menu_naam ."' = '". $var->menu ."'


Dat gedeelte kan ik niet helemaal plaatsen. Een van beide zou volgens mij statisch moeten zijn. Bovendien is $var->menu daar nog niet beschikbaar. Die is pas beschikbaar na je while loop.

Even iets anders: hoeveel menu's heb je eigenlijk?
Met loopjes werken is leuk, maar zoveel querys draaien is nogal zwaar... Volgens mij kun je beter php een query laten schrijven:

  1. <?php
  2. $aCategory = array('voetbal', 'php','mysql'); // een array met de categorieën die gekozen moeten worden
  3. $sQuery1 = "SELECT pagina_naam, menu FROM pagina ";
  4. $sWhere = "WHERE ";
  5.  
  6. foreach($aCategory as $sCategoryName) {
  7. $sWhere.= "menu_naam = '".$sCategoryName."' OR ";
  8. }
  9.  
  10. $sWhere = substr($sWhere, -3);
  11. $sQuery1 = $sQuery1.$sWhere." ORDER BY id ASC";
  12. $rsResult1 = mysql_query($sQuery1) or die('Een fout in '.$sQuery1.'<br />'.mysql_error());
  13. ?>
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.255s