Ik ben bezig met een php website. Als ik met een querie de gegevens uit de DB ophaal worden deze netjes onder elkaar op de pagina getoond.

Echter omdat er 45 resultaten worden gevonden moet je erg veel scrollen om het onderste resultaat te bekijken. Ik zou deze graag verdeeld over 3 kolommen willen tonen op de webpagina, maar heb geen idee hoe dat moet.

Wie kan me helpen?
Met de modulo-operator kun je leuke dingen doen. Kijk in dit voorbeeldje. Hij maakt een tabel die steeds 3 vakjes naast elkaar doet en dan weer op de volgende regel (tr) begint. Succes.

<?php

$i = 0;

echo '<table>';

while ($MySQLblahblahblah) {
if ($i % 3 == 0) echo '<tr>';

echo '<td>';
echo $MySQLblahblahblah['blah'];
echo '</td>';

if ($i % 3 == 2) echo '</tr>';
$i++;
}

echo '</table>';

?>
Maar als je iets op alfabetische volgorde wil tonen ziet het er vreemd uit als ze naastelkaar staan.

voor de duidelijkheid kan je kijken op www.citrading.nl/voorraad.php

Dit is de code die ik gebruikt voor het tonen van de gegevens:


<tr>
		<td valign="top">&nbsp;</td>
		<td width="60" valign="top"> </td>
		<td width="252" valign="top"><b>

		<a href="merk.php?merk=<?=$row['merk']?> "class="style12"><?=$row['merk']?></a>

		</b></td>
      		<td width="112" valign="top"><br></td>
		<td width="133" valign="top"><a href="voorraad2.php"></td>
		<td width="117" valign="top">&nbsp;</td>
	</tr>
@sjors zet er even [.code.][./code.] tags omheen (zonder punten :)

@PHPerik
maak er dan gelijk dit van:
<?
if ($i % 3 == 0) echo '</tr><tr>';
?>

Dit kost je weer 1 regel code :)

Maar hoe werken die operators dan precies? Ik zou ze op deze manier ook graag willen gebruiken omdat ik ze vaak erg omslachtig gebruik...

Owja, hoe los jij het op als er maar 4 records zijn :)
Marien, ik vind het overzichtelijker om het in tweeën te splitsen.

Verder zet ik meestal op het laatst een check met lege td's eventueel.

Die modulo-operator geeft in programmeertalen de restwaarde.

3 % 7 = 3
10 % 7 = 3
17 % 7 = 3
24 % 7 = 3
etc

In de wiskunde geeft modulo geen uitkomst maar een reeks geldige antwoorden.
Waarom is alles 3 dan?
3 delen door 7 kan niet dus hou je 3 over
10 delen door 7 kan niet, je kan er 1 keer 7 afhalen je houdt 3 over
etc

10 - 7 = 3
17 - 2*7 = 3
24 - 3*7 = 3

5 % 2 = 1
7 % 5 = 2
16 % 4 = 0
11 % 3 = 2

O ja, je kunt modulo ook herschrijven:

a % b = c
==>
c = a - kb
waarbij k elk getal kan zijn

Ook hetzelfde:

$a - (floor($a / $b) * $b)

Reageren