login  Naam:   Wachtwoord: 
Registreer je!
 Forum

3 rijen uit database halen

Offline Ultimatum - 07/03/2007 15:47
Avatar van UltimatumPHP expert Ik heb een tabel waar allemaal plaatsen in staan, Die plaatsen haal ik op dmv een cookie waar het land in staat. Zoals je al raad moeten dus alleen die plaatsen uit de database getrokken worden. Dit lukt nu wel maar ik wil ze zo hebben:

Citaat:
Land 1 | Land 2 | Land 3
Land 4 | Land 5 | Land 6
Land 7 | Land 8 | Land 9


Ik had het eerst met een for loop gedaan maar als ik er nou een land tussen staat en die heeft niet het continent nummer dat gelijk is aan de cookie dan blijft er een open plek. Ik had het als volgt gedaan (beetje heel moeilijk volgens mij )

  1. <table cellpadding="0" cellspacing="0" style="width: 100%">
  2. <tr>
  3. <td style="width: 33%" valign="top">
  4. <?php
  5. for($i = mysql_result($min, 0); $i <= mysql_result($max, 0); $i+=3)
  6. {
  7. $select = mysql_query("SELECT *
  8. FROM cities
  9. WHERE country = ". $_COOKIE['Country'] ."
  10. AND id = ". $i ."") or die(mysql_error());
  11. while($arr = mysql_fetch_array($select))
  12. {
  13. ?>
  14. <a href="#" OnClick="SetCookie('City', '<?= $arr['id'] ?>'); Modalbox.show('Finish', 'location.php?lang=<?= $_GET['lang'] ?>&amp;act=Finish', {width: 500});"><?= str_replace(array('_', 'ë', 'ï'), array(' ', 'e', 'i'), $arr['city']) ?></a><br />
  15. <?php
  16. }
  17. }
  18. ?>
  19. </td>
  20. <td style="width: 33%" valign="top">
  21. <?php
  22. for($i = mysql_result($min, 0) +1; $i <= mysql_result($max, 0); $i+=3)
  23. {
  24. $select = mysql_query("SELECT *
  25. FROM cities
  26. WHERE country = ". $_COOKIE['Country'] ."
  27. AND id = ". $i ."") or die(mysql_error());
  28. while($arr = mysql_fetch_array($select))
  29. {
  30. ?>
  31. <a href="#" OnClick="SetCookie('City', '<?= $arr['id'] ?>'); Modalbox.show('Finish', 'location.php?lang=<?= $_GET['lang'] ?>&amp;act=Finish', {width: 500});"><?= str_replace(array('_', 'ë', 'ï'), array(' ', 'e', 'i'), $arr['city']) ?></a><br />
  32. <?php
  33. }
  34. }
  35. ?>
  36. </td>
  37. <td style="width: 33%" valign="top">
  38. <?php
  39. for($i = mysql_result($min, 0)+2; $i <= mysql_result($max, 0); $i+=3)
  40. {
  41. $select = mysql_query("SELECT *
  42. FROM cities
  43. WHERE country = ". $_COOKIE['Country'] ."
  44. AND id = ". $i ."") or die(mysql_error());
  45. while($arr = mysql_fetch_array($select))
  46. {
  47. ?>
  48. <a href="#" OnClick="SetCookie('City', '<?= $arr['id'] ?>'); Modalbox.show('Finish', 'location.php?lang=<?= $_GET['lang'] ?>&amp;act=Finish', {width: 500});"><?= str_replace(array('_', 'ë', 'ï'), array(' ', 'e', 'i'), $arr['city']) ?></a><br />
  49. <?php
  50. }
  51. }
  52. ?>
  53. </td>
  54. </tr>
  55. </table>


Mijn vraag is ook hoe kan ik dit makkelijker doen (1 query als mogelijk is en dan zonder die for want als de plaatsen id 1 tot 6 hebben lukt het wel maar heeft een plaats in een ander land id 4 dan blijft plek 4 gewoon leeg.. (is wel logisch btw )

4 antwoorden

Gesponsorde links
Offline Stijn - 07/03/2007 15:58
Avatar van Stijn PHP expert modulo rekenen 
  1. <?
  2. $i = 0;
  3.  
  4. while( $row = mysql_fetch_result( $q ) ) {
  5.  
  6. if( $i%3 == 0 ) { //mod 3
  7.  
  8. echo ( $i == 0 ) ? '<tr>' : '</tr><tr>';
  9. echo '<td>';
  10. echo $row['land'];
  11. echo '</td>';
  12.  
  13. } else {
  14.  
  15. echo '<td>';
  16. echo $row['land'];
  17. echo '</td>';
  18.  
  19. }
  20.  
  21. }
  22. ?>


ff snel geschreven
Offline Gerard - 07/03/2007 16:08
Avatar van Gerard Ouwe rakker hoog die $i ook even op dan 
Offline Ultimatum - 07/03/2007 16:48
Avatar van Ultimatum PHP expert En waar moet ik de eerste <tr> dan openen of sluiten? Boven $i nog of hoef ik alleen een </tr> nog onder de laatste } te zetten?
Offline ikkedikke - 07/03/2007 17:08
Avatar van ikkedikke PHP expert je kan ook het volgende proberen:
<table>
<tr>
<?
phpcode met op regel 8:
echo '</tr><tr>';
in plaats van wat er nu staat.
?>
</tr>
</table>
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.193s