Вот один вариант вывода в нескольких колонках.
Функция:
Code
<?php
function category($cols,$res){
$width = 100/$cols;
$row = mysql_num_rows($res);
$table .= "<table cellpadding=\"2\" cellspacing=\"0\" width=\"100%\">";
for ($i=0;$i<$row;$i+=$cols){
$table .= '<tr>';
for ($e=0;$e<$cols;$e++){
$id = $i + $e;
$table .= "<td height=\"10\" width=\"".$width."%\">";
if($id<$row){
$table .= mysql_result($res,$id,"name");
}
else{
$table .="";
}
$table .= "</td>";
}
$table .= "</tr>";
}
$table .= "</table>";
return $table;
}
?>
Применение:
Code
<?php
$res = mysql_query("SELECT * FROM таблица_категорий ORDER BY name");
$cols = 4;
echo category($cols,$res);
?>