Ik heb tabel met een while loop en die ziet er nu grofweg zo uit: (één rij per regel)

<tr><td>$row['foto']</td><td>$row['naam']</td></tr>

Maar ik wil graag 2 rijen per regel.

<tr><td>$row['foto']</td><td>$row['naam']</td><td>$row['foto']</td><td>$row['naam']</td>           </tr>


Nou heb ik wat gegoogled maar het gaat mijn pet te boven. Ik denk dat ik iets moet doen met de oneven links en de even numrows rechts. Alleen hoe doe je dat? Ik heb wat lopen prutten maar ik kom er niet uit...Kan iemand me op weg helpen?
Zoiets :

$result = $db->query( $querySelect );

$flag = FALSE;

while ( $row = $result->fetch_object() ) {

	echo $flag == FALSE ? '<tr>' : '';
	echo '<td>' . $row->foto . '</td>';
	echo '<td>' . $row->naam . '</td>';
	echo $flag == TRUE ? '</tr>' : '';
	$flag = !$flag;

}
Hm ik zat al te denken aan oplossingen met modulorekenen enzo maar zouden gefloate divjes in een container niet veel makkelijker zijn? Wanneer een gefloat element niet past in de ruimte springt deze automatisch naar de volgende regel. Dit is precies wat je wilt?
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>float test</title>
<style type="text/css">
.foto-container { width: 300px; } /* een veelvoud van de breedte van de .foto class */
.foto           { width: 100px; height: 50px; display: block; float: left; text-align: center; line-height: 50px; }
.even           { background-color: #ffcccc; }
.oneven         { background-color: #ccccff; }
</style>
</head>

<body>
<div class="foto-container">
<?php
// dummy resultaten
$results = 10;

// dummy loop
for ($i=0; $i < $results; $i++) {
    $class = ($i % 2 ? 'oneven' : 'even');
    ?><div class="foto <?php echo $class ?>">foto <?php echo $i ?></div><?php
}
?>
</div>
</body>
</html>

Het enige wat je hoeft te veranderen wanneer je een ander aantal foto's per regel wilt is de breedte van de container.

Afhankelijk van de data die je wilt weergeven kan het soms ook handiger zijn om een echte tabel te bouwen maar ik denk dat je in dit geval, voor de weergave van foto's, wel uit de voeten kunt met een container met gefloate divjes.
Ik ben het rijtje afgegaan. De eerste was niet wat ik bedoel. De 2e van Adoptive Solution werkt perfect bij een even aantal (anders valt de laatste buiten de houder). Ik wil het graag aanpassen maar ja, ik begrijp eigenlijk alleen procedureel.
Kan ik er op een of andere manier een lege <td> aan de loop vastplakken bij een oneven aantal?
Die code sluit alleen een rij alsnog af, maar voegt geen dummy-cellen toe als het aantal resultaten geen veelvoud is van het aantal items per rij, wat tot gevolg heeft dat dit syntactisch incorrecte tabellen oplevert? Volgens mij heb ik dat al eens aangehaald, maar die code is nog (steeds) niet aangepast.
Thomas van den Heuvel op 14/01/2017 23:09:19

Die code sluit alleen een rij alsnog af, maar voegt geen dummy-cellen toe als het aantal resultaten geen veelvoud is van het aantal items per rij, wat tot gevolg heeft dat dit syntactisch incorrecte tabellen oplevert? Volgens mij heb ik dat al eens aangehaald, maar die code is nog (steeds) niet aangepast.


Script is nu aangepast.
Over dat script heb ik maar 1 opmerking: waarom noem je je variabele $dummy en niet $i zoals conventioneel gebruikt wordt? $dummy voelt als een nutteloze variabele terwijl hij dat echt niet is.
Het is maar een naampje.
Komt eigenlijk doordat Thomas het over dummy-cellen had.
Vind het verder niet echt interessant.
$i is ook prima.

Reageren