Padomāt tikai vajag :)
Ar div elementiem būs vienkāršāk aiz tāda iemesla, ka nav jāseko līdzi izvadāmo ierakstu skaitam, atliek css'ā sarakstīt attiecīgās vērtības attiecīgajam elementam. Piemēram, ja tu izvadīsi vienu elementu pēc otra un pēc css noteikumiem tam ir noteikts platums, tad loģiski, ka tas automātiski pārleks jaunā rindā.
Ja nu tomēr tabula, tad jāizdomā, ko jāizvada ciklam. Loģiski, katram elementam nebūs vajadzīga jauna tabula, tātad <table> tagiem jāatrodas ārpus cikla. Arī <tr> tagus nav jāizvada līdz ar katru ierakstu, taču ik pa noteiktam ierakstu skaitam gan. Tad nu jāsāk lietot izdoma.
$i = 0;
echo '<table><tr>';
while(){
echo '<td> </td>';
if(++$i%5==0){ // ja šī ieraksta kārtas numurs dalās ar 5 bez atlikuma, tad taisam jaunu rindu
echo '</tr><tr>';
}
}
echo '</tr></table>'