login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Kom er niet uit :(

Offline roelh - 30/05/2006 21:56
Avatar van roelhPHP gevorderde Mensen, ik heb dit nu.
K heb 100 bedrijven in mijn database.
Nu wil ik dat ze eerlijk verveeld worden.
Het liefst wil ik 4 rijen naast elkaar.
Betekent dus dat er 25 onder elkaar komen.
Dus als er 1 bij komt dat hij automatisch aanpast 
Wie kan me ermee helpen?
Kom er niet uit.

Groet,

  1. <?
  2. include "config.php";
  3. ?>
  4. <html>
  5.  
  6. <head>
  7. <title>Schadeautos.eu</title>
  8. </head>
  9.  
  10. <body>
  11.  
  12. <?php
  13. $qb = mysql_query("SELECT bedrijfsnaam FROM bedrijven") or die (mysql_error());
  14. while ($arrb = mysql_fetch_assoc($qb))
  15. {
  16. echo $arrb['bedrijfsnaam'];
  17. echo "<br>";
  18. }
  19.  
  20.  
  21. ?>
  22.  
  23. </body>
  24.  
  25. </html>

12 antwoorden

Gesponsorde links
Offline ikkedikke - 30/05/2006 21:58
Avatar van ikkedikke PHP expert alles in een tabel echo'en
kijk hier maar eens
http://www.site...p;id=14838
Offline roelh - 30/05/2006 21:59
Avatar van roelh PHP gevorderde Hmmss snap het niet echt zo 
Zou je me aub kunnen helpen?
Zou het echt op prijs stellen 
Offline ikkedikke - 30/05/2006 22:02
Avatar van ikkedikke PHP expert probeer het dan eerst eens te begrijpen. zoek op php.net eens naar for()-lussen
Offline roelh - 30/05/2006 22:15 (laatste wijziging 31/05/2006 08:57)
Avatar van roelh PHP gevorderde Heb nu dit zo.
Maar hij wil niet de bedrijfsnamen naast elkaar zetten.
Ik wil 4 naast elkaar en dat hij dan volgende regel pakt.
Wie kan me helpen?
Kan niemand me ff AUB helpen? 

Groet,

  1. <?
  2. include "config.php";
  3. ?>
  4. <html>
  5.  
  6. <head>
  7. <title>Schadeautos.eu</title>
  8. </head>
  9.  
  10. <body>
  11.  
  12. <?php
  13. $qb = mysql_query("SELECT bedrijfsnaam FROM bedrijven") or die (mysql_error());
  14. $tel = mysql_num_rows($qb);
  15.  
  16. for( $i = 1; $i <= $tel; $i++ )
  17. {
  18.  
  19. while ($arrb = mysql_fetch_assoc($qb))
  20. {
  21.  
  22. $nummer = 1;
  23.  
  24. echo "<table><tr>";
  25.  
  26.  
  27. echo "<td>".$arrb['bedrijfsnaam']['$i']."</td>";
  28.  
  29. if( ($nummer % 4) == 0 )
  30. {
  31. echo "</tr><tr>";
  32. }
  33. $nummer++;
  34. }
  35.  
  36. echo "</tr></table>";
  37. }
  38.  
  39.  
  40. ?>
  41.  
  42. </body>
  43.  
  44. </html>
Offline Thomas - 31/05/2006 09:22
Avatar van Thomas Moderator > tutorial?
Offline roelh - 31/05/2006 09:26 (laatste wijziging 31/05/2006 09:40)
Avatar van roelh PHP gevorderde Heb nu dit, maar hij haalt alleen het laatste uit de database.
De rest wil hij niet pakken.
Iemand idee wat het kan zijn eventueel? 

  1. <?
  2. include "config.php";
  3. ?>
  4. <html>
  5.  
  6. <head>
  7. <title>blaat</title>
  8. </head>
  9.  
  10. <body>
  11.  
  12. <?php
  13. $qb = mysql_query("SELECT bedrijfsnaam FROM bedrijven") or die (mysql_error());
  14. $tel = mysql_num_rows($qb);
  15. while ($arrb = mysql_fetch_assoc($qb))
  16. {
  17. $bedrijfsnaam = array($arrb['bedrijfsnaam']);
  18. }
  19. $items = array("item 1", "item 2", "item 3", "item 4", "item 5", "item 6",
  20. "item 7", "item 8", "item 9", "item 10", "item 11", "item 12");
  21. // hulpvariabelen
  22. $aantal_kolommen = 4;
  23. $kolom_breedte = 75; // in pixels
  24. $aantal_items = sizeof($bedrijfsnaam);
  25. $huidige_kolom = 0; // als deze variabele de waarde 0 heeft dan is er een rij afgelopen
  26. // en moet er een nieuwe beginnen
  27.  
  28. // bouw de tabel en doorloop de items
  29. ?>
  30. <table width="<?= $aantal_kolommen * $kolom_breedte ?>" border="1" cellspacing="0" cellpadding="2">
  31. <?php
  32.  
  33. foreach($bedrijfsnaam as $item) {
  34. // waren we klaar met een rij ?
  35. if($huidige_kolom == 0) {
  36. // open een nieuwe rij
  37. echo "<tr>\n"; // hier is \n toegevoegd om de leesbaarheid van de HTML-source te verhogen
  38. }
  39.  
  40. // druk het item af - hier zou je dus nog tabellen kunnen nesten - in dit voorbeeld houden we het simpel
  41. echo "<td width=\"".$kolom_breedte."\">".$item."</td>\n";
  42.  
  43. // we zijn een kolom verder, verhoog $huidige_kolom
  44. $huidige_kolom++;
  45.  
  46. // waren we klaar met een rij ?
  47. if($huidige_kolom == $aantal_kolommen) {
  48. // sluit de rij af en reset $huidige_kolom
  49. echo "</tr>\n";
  50. $huidige_kolom = 0;
  51. }
  52. }
  53.  
  54. // fix voor de laatste rij - was een rij volledig gevuld ?
  55. if($huidige_kolom != 0) {
  56. // rij was nog niet vol(ledig) - vul de resterende cellen op met "stuffing"
  57. for($i = $huidige_kolom; $i < $aantal_kolommen; $i++) {
  58. // in plaats van &nbsp; kun je de cel ook met iets anders vullen natuurlijk
  59. echo "<td width=\"".$kolom_breedte."\">&nbsp;</td>\n";
  60. }
  61. // sluit tenslotte de rij alsnog af
  62. echo "</tr>\n";
  63. }
  64.  
  65.  
  66. ?>
  67.  
  68. </body>
  69.  
  70. </html>
Offline Thomas - 31/05/2006 09:44 (laatste wijziging 31/05/2006 09:44)
Avatar van Thomas Moderator Regel 17:
  1. $bedrijfsnaam = array($arrb['bedrijfsnaam']);


$bedrijfsnaam wordt telkens overschreven, en van het enige element in $bedrijfsnaam maak je een array?

Ik denk dat je het als volgt moet doen (regel 15-18):

  1. $bedrijfsnaam = array();
  2. while ($arrb = mysql_fetch_assoc($qb))
  3. {
  4. $bedrijfsnaam[] = $arrb['bedrijfsnaam'];
  5. }


En $items kun je gewoon schrappen...
Offline roelh - 31/05/2006 09:50
Avatar van roelh PHP gevorderde Thanks Fangorn, het werkt, eindelijk, echt super bedankt! 
Nu nog 1 vraagje, wat niet echt noodzakelijk is, maar wel leuk zou zijn als het werkt 
Nu komen de bedrijven naast elkaar op volgorde.
kan ik ook de bedrijven onder elkaar op volgorde zetten?
En dat hij dan gewoon deze structuur aanhoud?
Hopelijk snap je wat ik bedoel 
Offline Thomas - 31/05/2006 09:55
Avatar van Thomas Moderator Je bedoelt zoiets:
  1. 1 4 7 10
  2. 2 5 8 11
  3. 3 6 9 -


in plaats van (wat je nu hebt):
  1. 1 2 3 4
  2. 5 6 7 8
  3. 9 10 11 -


Dat wordt wat lastiger - je moet dan berekenen hoeveel items iedere kolom heeft om alle kolommen op te vullen.
Offline roelh - 31/05/2006 09:57 (laatste wijziging 31/05/2006 10:00)
Avatar van roelh PHP gevorderde Aha okee, neen laat maar dan 
Nu alleen nog ff zorgen dat die dingen linkbaar worden, maar moet denk wel lukken 
Bedankt iig FangorN! 

FangorN, als je me aub nog ff met die link wil helpen?
Ik wil graag dus die bedrijfsnamen met een link doorsturen naar een volgende pagina dmv een id.
Maar ik kan niet goed voor elkaar krijgen namelijk.
Hopelijk kunje me daar nog ff mee helpen?
Hij blijft maar fouten geven namelijk 
Offline Thomas - 31/05/2006 10:08 (laatste wijziging 31/05/2006 10:09)
Avatar van Thomas Moderator Hm, het is toch niet zo lastig denk ik, om het in kolommen te zetten.

Wat je nodig hebt:
x - het aantal items
n - het aantal kolommen
k - kolomhoogte, te berekenen door x/n naar boven af te ronden

kolommen en rijen als volgt aflopen:
  1. for(rij=0; rij < k; rij++)
  2. for(kolom=0; kolom < n; kolom++)
  3. if(rij + (kolom+1) * k <= x)
  4. // druk item af (met nummer rij + (kolom+1) * k)
  5. else
  6. // opvulveld
Offline roelh - 31/05/2006 10:11 (laatste wijziging 31/05/2006 12:39)
Avatar van roelh PHP gevorderde @Ontani: Het is me gelukt, alleen nog 1 ding en dan ben ik klaar met vragen hierover 
Wil graag dat de ID's worden meegegeven aan de bedrijfsnamen om zo op de volgende pagina te komen dus.
Hoe red ik dat?
Alvast bedankt! ;)

  1. <?
  2. include "config.php";
  3. ?>
  4. <html>
  5.  
  6. <head>
  7. <title>blaat</title>
  8. </head>
  9.  
  10. <body>
  11.  
  12. <?php
  13. $qb = mysql_query("SELECT id, bedrijfsnaam FROM bedrijven ORDER by bedrijfsnaam ASC") or die (mysql_error());
  14. $tel = mysql_num_rows($qb);
  15.  
  16. $bedrijfsnaam = array();
  17. while ($arrb = mysql_fetch_assoc($qb))
  18. {
  19. $id = $arrb['id'];
  20. $bedrijfsnaam[] = $arrb['bedrijfsnaam'];
  21. }
  22.  
  23.  
  24. // hulpvariabelen
  25. $aantal_kolommen = 4;
  26. $kolom_breedte = 200; // in pixels
  27. $aantal_items = sizeof($bedrijfsnaam);
  28. $huidige_kolom = 0; // als deze variabele de waarde 0 heeft dan is er een rij afgelopen
  29. // en moet er een nieuwe beginnen
  30.  
  31. // bouw de tabel en doorloop de items
  32. ?>
  33. <table width="<?= $aantal_kolommen * $kolom_breedte ?>" border="1" cellspacing="0" cellpadding="2">
  34. <?php
  35.  
  36. foreach($bedrijfsnaam as $item) {
  37. // waren we klaar met een rij ?
  38. if($huidige_kolom == 0) {
  39. // open een nieuwe rij
  40. echo "<tr>\n"; // hier is \n toegevoegd om de leesbaarheid van de HTML-source te verhogen
  41. }
  42.  
  43. // druk het item af - hier zou je dus nog tabellen kunnen nesten - in dit voorbeeld houden we het simpel
  44. echo "<td width=\"".$kolom_breedte."\"><a href=\"profiel.php?id=".$id."\">".$item."</a></td>\n";
  45.  
  46.  
  47.  
  48.  
  49.  
  50. // we zijn een kolom verder, verhoog $huidige_kolom
  51. $huidige_kolom++;
  52.  
  53. // waren we klaar met een rij ?
  54. if($huidige_kolom == $aantal_kolommen) {
  55. // sluit de rij af en reset $huidige_kolom
  56. echo "</tr>\n";
  57. $huidige_kolom = 0;
  58. }
  59. }
  60.  
  61. // fix voor de laatste rij - was een rij volledig gevuld ?
  62. if($huidige_kolom != 0) {
  63. // rij was nog niet vol(ledig) - vul de resterende cellen op met "stuffing"
  64. for($i = $huidige_kolom; $i < $aantal_kolommen; $i++) {
  65. // in plaats van &nbsp; kun je de cel ook met iets anders vullen natuurlijk
  66. echo "<td width=\"".$kolom_breedte."\">&nbsp;</td>\n";
  67. }
  68. // sluit tenslotte de rij alsnog af
  69. echo "</tr>\n";
  70. }
  71.  
  72.  
  73. ?>
  74.  
  75. </body>
  76.  
  77. </html>
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.303s