Ho seguito la pillola per la impaginazione su colonne (qui) e sto cercando di adattarla alle mie esigenze (catalogo online di prodotti con categorie e sottocategorie).

Codice PHP:

            <?php
            
            $colonne 
3;
            
            
$tot_righe $num_record/$colonne;
            
            
$i_x 0;
            
$x_x 0;
            
$k_x 0;

            
$cell_width floor(100/$colonne);

            echo 
"<table width=\"100%\" border=\"0\" cellspacing=\"1\" cellpadding=\"3\"><tr>";

            
$query = @mysql_query("SELECT * FROM listino WHERE attivo = '0' ORDER BY nome_listino");
            
$num_record mysql_num_rows($query);
            while(
$array mysql_fetch_array($query)){
            
            
// conto i prodotti di ogni sottocategoria e li visualizzo
            
            
$sql "SELECT COUNT(*) AS totale FROM prodotti WHERE '$array[nome_listino]' = categoria";
            
$st=mysql_query($sql) or die(mysql_error());
            
$row=mysql_fetch_assoc($st);
            
            
$i_x++;
            
$k_x++;
            
$x_x++;
            
            echo 
"<td width=\"$cell_width%\" align=\"center\"><font face=\"MS Sans Serif\" size=\"1\" color=\"#FFFFFF\"><a class=\"catalogo\" href=\"sotto.php?nome_listino=$array[nome_listino]\">$array[nome_listino]</a>";
    
            echo 
" [b]($row[totale])[/b]";  // numero prodotti presenti nella categoria e sottocategoria
            
            
echo "</font></td>";
            
            if(
$i_x == $colonne) {
                
                echo 
"</tr>";
            
            if (
$i_x == $colonne && (($x_x/$colonne) != $tot_righe)) {
            
                    echo 
"<tr>";
            
                         }
            
$i_x 0;
                                                } 
            
            } 
            
            if (
$colonne <= $x_x){
            
            if ((
$k_x%$colonne) != 0){
            
                
$indice $k_x;
            
            while ((
$indice%$colonne) != ){
            
            echo 
"<td><img src=\"images/spacer.gif\" width=\"1\" height=\"1\"></td>";
            
            
$indice++;
            
                         }
            
              if((
$indice%$colonne) == ){
            
            echo 
"</tr>";
                     
                      }
            
                    }
            
            } else{
             
            echo 
"</tr>";
                            
                             }
            
            echo 
"</table>";
            
            
?>
Ho aggiunto una parte per contare i relativi prodotti presenti nelle relative categorie, direi che funziona correttamente, mi visualizza tre colonne per riga con i relativi nomi di categorie e vicino il numero dei prodotti inseriti in quella categoria, adesso pero' io vorrei che venissero visualizzati solo le categorie che hanno presenti dei prodotti al loro interno (vedi un esempio qui) in modo da non visualizzare le categorie con (0) prodotti all'interno.

Come posso risolvere questo tedioso problema ? :master:

Ciao ciao
Micky