Código PHP:
<?php
//Sacar las categorias
$cat = mysql_query("SELECT * FROM cat_ad ORDER BY $cat_name") or die(mysql_error());
$num_rows = mysql_num_rows($cat);
$x = 0; //contador
$num_cols = 3; //dividiendo en 3 columnas
?>
<div class="column_in_categories">
<div class="menucategories"><ul>
<?php
while($row_parent = mysql_fetch_array($cat)){
$subcat = mysql_query("SELECT * FROM sub_cat_ad WHERE from_cat_ad = {$row_parent['idCat_ad']}")
or die(mysql_error()); //sacar las subcategorias
?>
<!--Imprimiendo la categoria -->
<li class="header"><?php echo htmlspecialchars($row_parent[$cat_name]); ?></li>
<?php
while($row_child = mysql_fetch_array($subcat)) {
$scatTotQ = mysql_query("SELECT ads_in_Cat FROM ads WHERE
ads_in_Cat = '".$row_child['id_sub_cat']."'") or die(mysql_error());
$scatTot = mysql_num_rows($scatTotQ);
?>
<li class="subcat"><!--Imprimiendo las categorias -->
<a href="http://localhost/root509dir/Public/ads/displayAds-<?php echo intval($row_child['id_sub_cat']); ?>-<?php echo URL_RW(htmlspecialchars(utf8_decode($row_parent[$cat_name]))); ?>-<?php echo URL_RW(htmlspecialchars(utf8_decode($row_child[$subcat_name]))); ?>.html">
<?php echo htmlspecialchars($row_child[$subcat_name]) ." (".intval($scatTot).")"; ?>
</a>
</li>
<?php } //end while subcat
//aumentamos en 1 el contador despues de haber imprimido la catetogias con sus hijos
$x++;
if ($x == ceil($num_rows / $num_cols)) { //si se imprime una columna?>
</ul></div><!--Cerramos ul y el div de la primera columna -->
<div class="menucategories"><ul><!--Cerramos ul y el div de la primera columna -->
<?php
$x=0; //se reinicia el contador
}//end if
}//end while cat
?></ul>
</div>
</div>
http://www.box.net/shared/odhcmqlssr
Tengo solamente un error de validación [ul sin li...]
<div class="menucategories"><ul>
</ul>
Habrá otra forma mas limpia? o esta bien [no pasa xhtml validation]
Me parece que la magia esta en float left aplicado en los estilos...