login  Naam:   Wachtwoord: 
Registreer je!
 Forum

While functie

Offline pim1991 - 24/02/2007 19:39
Avatar van pim1991PHP interesse Hallo,
Ik ben met een site bezig en in een while functie haalt het script categorieen uit de db. Maar hij laat er maar 1 zien ipv alles. Hoe kan ik dit oplossen?
Dit is de code:
  1. <?php
  2. ini_set('error_reporting', E_ALL);
  3. include ("include/include.php");
  4. std_header();
  5. ?>
  6. <h2><center>Momenteel hebben wij devolgende akties lopen</center></h2><br>
  7. <lu>
  8. <?php
  9.  
  10. $query = "SELECT * FROM akties_cat ORDER BY sort";
  11. $exec = mysql_query($query) or die(mysql_error());
  12. while ($result = mysql_fetch_array($exec))
  13. {
  14. $id = $result['id'];
  15. $naam = $result['naam'];
  16. echo '<table border=0 width=300><tr><td>';
  17. echo $naam;
  18. echo '</tr></td>';
  19. $query = "SELECT * FROM akties WHERE cat='".$id."' ORDER BY naam DESC";
  20. $exec = mysql_query($query) or die(mysql_error());
  21. echo '<lu>';
  22. while ($result = mysql_fetch_array($exec))
  23. {
  24. $naam = $result['naam'];
  25. $url = $result['url'];
  26. echo '<tr><td><a href='.$url.'>';
  27. echo $naam;
  28. echo '</a></tr></td>';
  29. }
  30. echo '</table>';
  31. }
  32.  
  33.  
  34. std_footer();
  35. ?>

3 antwoorden

Gesponsorde links
Offline Rik - 24/02/2007 19:58
Avatar van Rik Gouden medailleGouden medaille

Crew algemeen
Op regel 20 begin voer je nog een mysql query uit, het resultaat daarvan zet je weer in $exec, de $exec van de mysql query die je als eerst hebt uitgevoerd wordt overschreven.
Offline marten - 25/02/2007 11:04
Avatar van marten Beheerder
  1. <?php
  2. ini_set('error_reporting', E_ALL);
  3. include ("include/include.php");
  4. std_header();
  5. ?>
  6. <h2><center>Momenteel hebben wij devolgende akties lopen</center></h2><br>
  7. <lu>
  8. <?php
  9.  
  10. $query_cats = "SELECT * FROM akties_cat ORDER BY sort";
  11. $exec_cats = mysql_query($query_cats) or die(mysql_error());
  12. while ($result = mysql_fetch_array($exec_cats)) {
  13. echo '<table border=0 width=300><tr><td>';
  14. echo $result['naam'];
  15. echo '</tr></td>';
  16. $query_akties = "SELECT * FROM akties WHERE cat=".$result['id']." ORDER BY naam DESC";
  17. $exec_akties = mysql_query($query_acties) or die(mysql_error());
  18. echo '<lu>';
  19. while ($result2 = mysql_fetch_array($exec_akties)) {
  20. echo '<tr><td><a href='.$result2['url'].'>';
  21. echo $result2['naam'];
  22. echo '</a></tr></td>';
  23. }
  24.  
  25. echo '</table>';
  26. }
  27.  
  28. std_footer();
  29. ?>


Ik heb de code wat ingekort. Want je hoeft geen nieuwe variabelen te maken als het al in een variabele staat:
  1. <?php $naam = $result['naam']; ?>
is een beetje onzinnig.

Verder zoek je in je query op $id. Ik neem aan dat dit een integer is dus hoeft het niet tussen single quotes (').

Succes verder enne kijk eens naar TemplatePower. eens gebruikt wil je nooit meer anders 
Offline Dark_Paul - 25/02/2007 11:37
Avatar van Dark_Paul PHP ver gevorderde Inderdaad, TemplatePower ownt. Als je doorhebt hoe je een goede structuur kan bouwen, daar heb ik zelf ook nog een tijdje op zitten puzzelen.
Verder, kan je dit niet met een JOIN doen, dan heb je maar één query en één While..?
Joins
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.22s