Gegevens in kolommen en rijen verdelen

Status
Niet open voor verdere reacties.

Waterlilly

Nieuwe gebruiker
Lid geworden
4 jun 2009
Berichten
3
Ik wist niet zeker of ik het in dit forum moest proberen dus als het niet klopt hoor ik het graag. ;)

Ik heb even gegoogled en dit script gevonden, maar hij werkt niet goed hij laat het zo zien:

+---------+---------+---------+---------+
| item 1 | item 1 |
+---------+---------+---------+---------+
| item 2 | item 2 |
+---------+---------+---------+---------+
| item 3 | item 3 |
+---------+---------+---------+---------+

Hij zou het ong. zo moeten laten zien:

+---------+---------+---------+---------+
| item 1 | item 2 | item 3 | item 4 |
+---------+---------+---------+---------+
| item 5 | item 6 | item 7 | item 8 |
+---------+---------+---------+---------+
| item 9 | item 10 |
+---------+---------+---------+---------+

Zou iemand mij kunnen helpen? Alvast heel erg bedankt!!

PHP:
<?php

$sql = "SELECT id from table";
$result= mysql_query($sql) or die("Er is iets fout gegaan!");

$aantal_kolommen = 4;
$kolom_breedte   = 75; // in pixels
$aantal_items    = mysql_num_rows($result);
$huidige_kolom   = 0; // als deze variabele de waarde 0 heeft dan is er een rij afgelopen
                      // en moet er een nieuwe beginnen

// hulpvariabelen

// bouw de tabel en doorloop de items
?>
<table width="<?= $aantal_kolommen * $kolom_breedte ?>" border="1" cellspacing="0" cellpadding="2">
<?php

while ($items = mysql_fetch_array($result)) {

foreach($items as $item) {
  // waren we klaar met een rij ?
  if($huidige_kolom == 0) {
    // open een nieuwe rij
    echo "<tr>\n"; // hier is \n toegevoegd om de leesbaarheid van de HTML-source te verhogen
  }

  // druk het item af - hier zou je dus nog tabellen kunnen nesten - in dit voorbeeld houden we het simpel
  echo "<td width=\"".$kolom_breedte."\">".$item."</td>\n";

  // we zijn een kolom verder, verhoog $huidige_kolom
  $huidige_kolom++;

  // waren we klaar met een rij ?
  if($huidige_kolom == $aantal_kolommen) {
    // sluit de rij af en reset $huidige_kolom
    echo "</tr>\n";
    $huidige_kolom = 0;
  }
}

// fix voor de laatste rij - was een rij volledig gevuld ?
if($huidige_kolom != 0) {
  // rij was nog niet vol(ledig) - vul de resterende cellen op met "stuffing"
  for($i = $huidige_kolom; $i < $aantal_kolommen; $i++) {
    // in plaats van &nbsp; kun je de cel ook met iets anders vullen natuurlijk
    echo "<td width=\"".$kolom_breedte."\">&nbsp;</td>\n";
  }
  // sluit tenslotte de rij alsnog af
  echo "</tr>\n";
}
}
?>
</table>
 
Laatst bewerkt:
Ik was van de week naar Center Parcs op vakantie, dus heb niet kunnen reageren. Ik ben dit weekend even druk, maar zal er zondag even naar kijken. Ik heb het idee dat het niet zo heel moeilijk is, maar je weet het natuurlijk maar nooit! ;)

Gr. Ronald!:)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan