Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    [sql] o [php] prodotti per categoria

    ciao a tutti
    spero possiate aiutarmi

    io ho questa query:
    codice:
    SELECT p.anteprima, p.Nome, p.Max_steam_pressure, tp.tipo_prod, p.Boiler_capacity, p.Detergent_tank_capacity, p.Refilling_water_tank_capacity_auto_refilling_system, p.id
                    FROM prodotti AS p, categoria AS c, prodcat AS pc, prodkind AS pk, tipo_prod AS tp
                     WHERE p.id = pc.idprod
                       AND p.id = pk.idprod
                       AND pc.idcat = c.id
                       AND pk.idtipo = tp.id
                       AND c.id = $idcat 
                       LIMIT $start, $display"
    in cui selezione tutti i prodotti che appartengono ad una certa categoria, e seleziona anche il campo di utilizzo "tp.tipo_prod" che può variare da domestic, light-commercial, commercial, light-industrial, industrial...

    fino qua tutto ok e la query funziona esattamente
    solo che se io da pannello admin inserisco un prodotto e seleziono per esempio sia commercial che light-industrial, questo nella pagina di quella data categoria mi stampa due volte la riga del prodotto per ogni tipo

    vi metto uno screenshot in caso non mi sia spiegato troppo bene (cosa molto probabile)




    pensate vi sia un modo a livello di query per ottenere una riga sola del prodotto ma che in quella stessa riga stampi tutte le tipologie di utilizzo?

    ciauz a tutti e spero possiate aiutarmi

  2. #2
    dite che forse è meglio intervenire via php???

    qualkuno può aiutarmi perfavore???

  3. #3
    Utente di HTML.it L'avatar di thitan
    Registrato dal
    Feb 2001
    Messaggi
    716
    per far si che ti stampi una sola riga, puoi usare il GROUP BY..
    per stampare tutte le tipologie nella stessa riga..non saprei, o che fai una seconda query dopo..

    non saprei se c'è un metodo sql

    www.inter-rail.it
    travellers, not tourist
    Is cuma cá mhinice a théann tú ar strae; is é is tábhachtaí gurb áil leat do bhealach a aimsiú arís.

  4. #4
    il fatto è che le group by non funzionano perchè mi fanno perdere dei dati, cioè sempre i dati della seconda riga, ed io vorrei ottenere che su una riga venissero stampate tutte le categorie di cui fa parte quell'oggetto

  5. #5

  6. #6
    Utente di HTML.it L'avatar di thitan
    Registrato dal
    Feb 2001
    Messaggi
    716
    scusa ma se il group by non và bene, senza avere la struttura della tabella e un qualche esempio non saprei come aiutarti

    www.inter-rail.it
    travellers, not tourist
    Is cuma cá mhinice a théann tú ar strae; is é is tábhachtaí gurb áil leat do bhealach a aimsiú arís.

  7. #7
    ecco scusa il mio ritardo


    queste sono le tabelle che uso:
    codice:
    CATEGORIA
    
    id  	
    categoria
    
    PRODCAT
    
    idprod
    idcat
    
    PRODOTTI
    
    id  	
    Nome 	
    Descrizione 	
    Seconda_descrizione
    Input_power
    Housing_material
    Motor_power
    Scution_capacity
    Air_Flow
    Recovery_dirty_tank_capacity
    Filtration_system
    Boiler_capacity
    Boiler_material
    Boiler_power
    Iron_power
    Max_steam_pressure
    Max_steam_temperature
    Refilling_water_tank_capacity_auto_refilling_system
    Water_refilling_pump_power
    Detergent_tank_capacity 
    Detergent_injection_pump
    Electric_Power_cord_lenght
    Flexible_hose_with_handle_grip_lenght
    Commands
    Main_unit_dimensions
    Main_unit_weight
    Packaging_dimensions
    Number_of_units_per_pallet
    Features
    anteprima
    
    PRODKIND
    
    idprod
    idtipo
    
    TIPO_PROD
    
    id
    tipo_prod
    questa è invece la funzione che uso per generare i prodotti per ogni categoria

    Codice PHP:
    function generate_product_per_category($idcat$page)
    {
      
    /* set pagination variables */
      
    $display 5;
      
    $pg = (isset($_REQUEST['pg']) && ctype_digit($_REQUEST['pg'])) ?  $_REQUEST['pg'] : 1;
                                                                                  
      
    $start $display $pg $display;
      
    /* paginating from a database */
      
    $result mysql_query("SELECT count(*) FROM prodcat WHERE idcat = $idcat");
      
    $total mysql_result($result0);
            
      
    $qproduct "SELECT p.anteprima, p.Nome, p.Max_steam_pressure, tp.tipo_prod, p.Boiler_capacity, p.Detergent_tank_capacity, p.Refilling_water_tank_capacity_auto_refilling_system, p.id
                    FROM prodotti AS p, categoria AS c, prodcat AS pc, prodkind AS pk, tipo_prod AS tp
                     WHERE p.id = pc.idprod
                       AND p.id = pk.idprod
                       AND pc.idcat = c.id
                       AND pk.idtipo = tp.id
                       AND c.id = 
    $idcat 
                       LIMIT 
    $start$display";
       
      
    $qproductsexe mysql_query($qproduct) or die("Errore Home Message: " mysql_error());
          
      while( 
    $row = @mysql_fetch_assoc($qproductsexe) ) 
      {    
        
    $product_list .= implode("",file($template_dir."product_list.tpl"));
        
    $product_list eregi_replace(""$row['anteprima'], $product_list);
        
    $product_list eregi_replace(""$row['Nome'], $product_list);
        
    $product_list eregi_replace(""$row['Max_steam_pressure'], $product_list);
        
    $caratteristiche "";
        if( 
    $row['Boiler_capacity']!='' )
        {
          
    $caratteristiche .= "Boiler Capacity: ".$row['Boiler_capacity']."
    "
    ;
        }
        
    /*if( $row['Detergent_tank_capacity']!='' )
        {
          $caratteristiche .= "Chemical Tank: ".$row['Detergent_tank_capacity']."
    ";
        }
        if( $row['Refilling_water_tank_capacity_auto_refilling_system']!='' )
        {
          $caratteristiche .= "Auto Refill Tank: ".$row['Refilling_water_tank_capacity_auto_refilling_system'];
        }*/
        
    $product_list eregi_replace(""$caratteristiche$product_list);
        
    $product_list eregi_replace(""$row['tipo_prod'], $product_list);
        
    $product_list eregi_replace(""$row['id'], $product_list);
                        
      }
           
      
    $pagina paginate($display$pg$total);
      
    //$product_list = eregi_replace("", $pagina, $product_list);
      
    $product_list .= $pagina;
      return 
    $product_list;
    }
    //end generate product per category 
    spero ti possa servire per aiutarmi
    ciauz e grazie

  8. #8
    nonostante tutto ho risolto in questo modo:

    Codice PHP:
    $qproduct "SELECT  p.id, p.anteprima, p.Nome, p.Max_steam_pressure, p.Boiler_capacity, p.Detergent_tank_capacity, p.Refilling_water_tank_capacity_auto_refilling_system, p.id
                    FROM prodotti AS p, categoria AS c, prodcat AS pc
                     WHERE p.id = pc.idprod
                       AND pc.idcat = c.id
                       AND c.id = 
    $idcat 
                       LIMIT 
    $start$display"
       
      
    $qproductsexe mysql_query($qproduct) or die("Errore Home Message: " mysql_error());
          
      while( 
    $row = @mysql_fetch_assoc($qproductsexe) ) 
      { 
        
    $tipo "";
        
    $qtipo "SELECT tp.tipo_prod FROM tipo_prod AS tp, prodkind AS pk WHERE tp.id = pk.idtipo AND pk.idprod = '".$row['id']."'";
        
    $qtipoexe mysql_query($qtipo);
        
    $contarisultato = @mysql_num_rows($qtipoexe);
        
          while(
    $rowtipo = @mysql_fetch_assoc($qtipoexe) )
          { 
            if(
    $contarisultato 1)
            {      
              
    $tipo .= $rowtipo['tipo_prod']."
    "
    ;
            }
            if(
    $contarisultato == 1)
            {
              
    $tipo $rowtipo['tipo_prod'];
             
    //echo "ciao";
            
    }
          } 
    staccando le due query e facendone una a parte solo per la tipologia del prodotto

    grazie a tutti

    se in caso vi venisse in mente un metodo per fare tutto con una query fatemelo sapere ciauz

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.