Ja to robie w taki sposób:
<?php
require 'mysql.php';
$q =mysql_query("select * from programy ORDER BY RAND() LIMIT 500");
<table>
<tr>';
$naTR = ceil($ile / 4
); // Przydzielenie ilości rekordów na kolumnę oraz zaokrąglenie tej liczby w górę $i = 1;
{
if($i ==1) // Jeśli zmienna $i równa się "1" to znaczy, że trzeba dać nagłówek tabeli
{
<td valign="top" width="300">'; // wyświetlenie nagłówka
}
echo '<br /><a href="/soft/'.$w['id'].'/">'.$w['nazwa'].'</a><br />'; // Wyświetlanie rekordów
if($i == $naTR) // Jeśli zmienna $i równa się zmiennej $naTR to wyświetlamy znacznik zakończenia kolumny
{
'; // Wyświetlenie znacznika
$i = 0; // i ustawienie zmiennej $i, która liczy ile już rekordów wyświetlono na 0, bo zostanie ona zwiększona
// o "1", a nam chodzi o to by po tej operacji była równa "1"
}
$i++;
}
echo '</tr></table>'; // Wyświetlenie znacznika zamykającego tabelę
?>
Efekt jest taki:
http://www.katalog.goingtoperfection.org/ tyle że tutaj są mam 3 słupki zamiast 4, ale ten kod co wkleiłem zrobi Ci 4. Jes z tym trochę zabawy, bo sam parę dni walczyłem, ale jakoś mi się udało.