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).
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.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) != 0 ){
echo "<td><img src=\"images/spacer.gif\" width=\"1\" height=\"1\"></td>";
$indice++;
}
if(($indice%$colonne) == 0 ){
echo "</tr>";
}
}
} else{
echo "</tr>";
}
echo "</table>";
?>
Come posso risolvere questo tedioso problema ? :master:
Ciao ciao
Micky