Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16
  1. #1

    Aiuto su pillola impaginazione su colonne

    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

  2. #2
    conti i prodotti presenti nella categoria;
    inserisci un bell'if dove cntrolli che il numero di prodotti presenti non sia <= 0.

    Se <= 0 mostri il messaggio (non ci sono prodotti per es) alrimenti visualizzi i prodotti. Ciao!

  3. #3
    Ciao e grazie per il veloce intervento !!!

    Ho provato a modificare aggiungendo l'if:

    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++;
                
                    if (
    $row[totale] > 0) {   // if per visualizzare o no le categorie con dentro prodotti
                    
                    
    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>";
                
                
    ?>
    Solo che cosi' facendo mi visualizza si solo le categorie con all'interno dei prodotti ma mi scombina di molto la tabella (vedi pagina modificataqui)...Forse non sto inserendo in maniera corretta l'if....

  4. #4
    up....

  5. #5
    Ora ti faccio vedere con uno pseudocodice come devi fare:
    Codice PHP:
    // Faccio la query di base
    $query "SELEZIONA * FROM prodotti WHERE cat_di_appartenenza = categoria_passata";
    $result mysql_query($query);

    // Conto il numero dei prodotti
    $numProducts mysql_num_rows($result);

    // A questo punto faccio il controllo
    if ($numProducts <= 0)
      {
         echo 
    'Non ci sono prodotti in questa categoria';
      }
    else
      {
        
    // Scorri i prodotti stampando anche la tabella
        
    while ($row mysql_fetch_array($result))
             {
               echo 
    $row['name'];
             }
      } 

  6. #6
    Nada...

  7. #7
    Posta il nuovo codice che hai scritto.

  8. #8
    Eccolo:

    Codice PHP:

                <?php
                
                $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)){
                
                
    //echo "$array[nome_listino]
    ";
                
                // conto i prodotti di ogni sottocategoria e li visualizzo se non ci sono prodotti nella categoria non la visualizzo
                
                
    $sql = "SELECT COUNT(*) AS totale FROM prodotti WHERE '$array[nome_listino]' categoria AND attivo '0'";
                
    $st=mysql_query($sql) or die(mysql_error());
                
    $row=mysql_fetch_assoc($st);
                
                    if (
    $row[totale] > 0) {
                
                    //echo "
    $array[nome_listino]-----($row[totale])
    ";
                    
                    
    $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)){
                    
                    
    $i_x++;
                    
    $k_x++;
                    
    $x_x++;
                    
                    echo 
    "<td width=\"$cell_width%\" align=\"center\"><img src=\"images/triangolini.gif\" width=\"10\" height=\"10\" border=\"0\" alt=\"\"><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>";
                    
                    
                    
                    }
                
                }
    E l'url della prova qui

    Grazie

  9. #9
    Codice PHP:
    $query = @mysql_query("SELECT * FROM listino WHERE attivo = '0' ORDER BY nome_listino");
                
    $num_record mysql_num_rows($query);
                if (
    $num_record <= 0)
                  {
                    echo 
    'Non ci sono prodotti';
                  }
                else
                  {
                     while (
    $array mysql_fetch_array($query))
                          {
                             
    //echo "$array[nome_listino]
    ";
                
                // conto i prodotti di ogni sottocategoria e li visualizzo se non ci sono prodotti nella categoria non la visualizzo
                
                
    $sql = "SELECT COUNT(*) AS totale FROM prodotti WHERE '$array[nome_listino]' categoria AND attivo '0'";
                
    $st=mysql_query($sql) or die(mysql_error());
                
    $row=mysql_fetch_assoc($st);
                
                    if (
    $row[totale] > 0) {
                
                    //echo "
    $array[nome_listino]-----($row[totale])
    ";
                    
                    
    $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)){
                    
                    
    $i_x++;
                    
    $k_x++;
                    
    $x_x++;
                    
                    echo 
    "<td width=\"$cell_width%\" align=\"center\"><img src=\"images/triangolini.gif\" width=\"10\" height=\"10\" border=\"0\" alt=\"\"><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>";
                    
                    
                    
                    }
                
                } 

  10. #10
    Ti metto anche questo che secondo me e' l'esempio piu' funzionale (con l'if...) solo che mi incasina la tabella...

    qui

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.