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

    Tabelle e campi mysql piu campi per un campo :|

    allora.. praticamente.. ho una tabella "prodotti" con un campo "id_prodotto"
    e un campo "foto" con "id_prodotto" che immagazina le foto di un prodotto..
    adesso in una pagina devo stampare una solo foto di quel prodotto.. e ho trovato la soluzione in php.. però vorrei trovare il modo di svolgere il tutto via mysql con una query solamente..

    al momento ho fatto questa query.. però no funziona.. stampa piu volte il prodotto per quante ne sono le foto.. con una foto diversa..


    SELECT * FROM dt_it_prodotti, dt_it_foto, dt_it_produttori WHERE dt_it_prodotti.modello LIKE '%v2%' OR dt_it_prodotti.descrizione LIKE '%v2%' OR dt_it_prodotti.descrizione = 'v2' OR dt_it_prodotti.modello = 'v2' AND dt_it_prodotti.id_prodotto = (SELECT id_foto FROM dt_it_foto WHERE dt_it_foto.id_prodotto = id_prodotto LIMIT 1) AND dt_it_produttori.id_produttore = dt_it_prodotti.id_produttore GROUP BY dt_it_foto.id_prodotto

    suggerimenti?

  2. #2
    Hai provato a togliere dt_id_foto dalla prima select?

    SELECT * FROM dt_it_prodotti, dt_it_produttori WHERE dt_it_prodotti.modello LIKE '%v2%' OR dt_it_prodotti.descrizione LIKE '%v2%' OR dt_it_prodotti.descrizione = 'v2' OR dt_it_prodotti.modello = 'v2' AND dt_it_prodotti.id_prodotto = (SELECT id_foto FROM dt_it_foto WHERE dt_it_foto.id_prodotto = id_prodotto LIMIT 1) AND dt_it_produttori.id_produttore = dt_it_prodotti.id_produttore GROUP BY dt_it_prodotti.id_prodotto;

  3. #3
    nn worka

  4. #4
    Prova così:

    codice:
    SELECT tab1.*, tab2.*, tab3.* FROM dt_it_prodotti AS tab1, dt_it_foto AS tab2, dt_it_produttori AS tab3
    WHERE (tab1.modello LIKE '%v2%' OR tab1.descrizione LIKE '%v2%' OR tab1.descrizione = 'v2' OR tab1.modello = 'v2') AND (tab1.id_prodotto = tab2.id_prodotto AND dt_it_produttori.id_produttore = dt_it_prodotti.id_produttore) LIMIT 1;
    E' molto più semplificata di quella che usi ora.


  5. #5
    FUNZIONA!!! :P Grazie Mille ^^

  6. #6
    anzi, non va bene se ho 2 foto per un prodotto me le stampa entrambe :| e quindi copia 2 volte lo stesso prodotto

  7. #7
    Impossibile...
    hai messo LIMIT 1? se metti questo è impossibile che ti dia 2 risultati.

  8. #8
    Codice PHP:
        function do_search($word$tabella$tabellafoto$tabellaprodori$perpagina$pagina 1$campo1$campo2$campo3$dato1$dato2$dato3$dato4$dato5$dato6$dato7$dato8)
        {        
            
    /*$this->querysearch = "SELECT * FROM ".$tabella.", ".$tabellafoto.", ".$tabellaprodori." 
                                    WHERE (".$tabella.".".$dato3." LIKE '%".$word."%' 
                                    OR ".$tabella.".".$dato6." LIKE '%".$word."%' 
                                    OR ".$tabella.".".$dato6." = '".$word."' 
                                    OR ".$tabella.".".$dato3." = '".$word."')
                                    AND ( SELECT MAX(id_foto) WHERE ".$tabella.".".$dato1." = ".$tabellafoto.".".$dato1.")
                                    AND (".$tabellaprodori.".".$dato2." = ".$tabella.".".$dato2.")";*/
                    
            
    $this->querysearche "SELECT * FROM ".$tabella." WHERE ".$tabella.".".$campo1." LIKE '%".$word."%' OR ".$tabella.".".$campo2." LIKE '%".$word."%' OR ".$tabella.".".$campo2." = '".$word."' OR ".$tabella.".".$campo1." = '".$word."'";
            
    $this->numrisultati mysql_num_rows(mysql_query($this->querysearche$this->cdb));        
            if(
    $this->numrisultati 1)
            {
                print(
    "<div>Nessun prodotto corrisponde al testo inserito.
    Forse hai inserito un testo troppo lungo.</div>"
    );
            }
            else
            {        
                
    $this->numeropagine ceil($this->numerorisultati $perpagina);
                if(
    $this->numrisultati <= $perpagina)
                {
                    
    $this->querysearcha mysql_query($this->querysearch$this->cdb);
                    while(
    $this->datocerca mysql_fetch_array($this->querysearcha))
                    {
                        print(
    "
                        <table width=\"100%\"><tr><td width=\"95\"><a href=\"index.php?go=prodotto&prodotto="
    .$this->datocerca[$dato1]."\"><img style=\"border: 1px #000000 solid;\" height=\"90\" width=\"150\" src=\"".$this->datocerca[$dato7]."\" /></a></td>
                        <td>
                        <div style=\"text-align: left;height:15px; width:100%\">
                        <a style=\"text-align: left;height:15px\" href=\"index.php?go=prodotto&prodotto="
    .$this->datocerca[$dato1]."\" class=\"l1\">".$this->datocerca[$dato8]." ".$this->datocerca[$dato3]."</a>
                        </div>
                        <div style=\"text-align: left;height:60px; width:100%\">
                        <div>"
    .substr($this->datocerca[$dato6], 0300)."...</div>
                        </div>
                        <div style=\"height:15px\">
                        <div style=\"text-align: right;\"><span style=\"font-weight: bold;color: #F96300;\">Disponibilit&agrave;:</span> "
    .PROZKommerce::show_disponibilita($this->datocerca[$dato5])."</div>
                        </div>
                        </td>
                        </tr>
                        </table>
                        "
    );
                    }
                }
                else
                {
                    
    $this->maxpage $pagina $perpagina;
                    
    $this->minpage $this->maxpage $perpagina;
                    
                    
    $this->querysearchb "SELECT * FROM ".$tabella.", ".$tabellafoto.", ".$tabellaprodori.
                            WHERE ("
    .$tabella.".".$dato3." LIKE '%".$word."%' 
                            OR "
    .$tabella.".".$dato6." LIKE '%".$word."%' 
                            OR "
    .$tabella.".".$dato6." = '".$word."' 
                            OR "
    .$tabella.".".$dato3." = '".$word."') 
                            AND ("
    .$tabella.".".$dato1." = ".$tabellafoto.".".$dato1.
                            AND "
    .$tabellaprodori.".".$dato2." = ".$tabella.".".$dato2.") LIMIT ".$this->minpage.", ".$this->maxpage."";
                    
                    
    $this->querysearchc mysql_query($this->querysearchb$this->cdb);
                    while(
    $this->datocerca mysql_fetch_array($this->querysearchc))
                    {
                        print(
    "
                        <table width=\"100%\"><tr><td width=\"95\"><a href=\"index.php?go=prodotto&prodotto="
    .$this->datocerca[$dato1]."\"><img style=\"border: 1px #000000 solid;\" height=\"90\" width=\"150\" src=\"".$this->datocerca[$dato7]."\" /></a></td>
                        <td>
                        <div style=\"text-align: left;height:15px; width:100%\">
                        <a style=\"text-align: left;height:15px\" href=\"index.php?go=prodotto&prodotto="
    .$this->datocerca[$dato1]."\" class=\"l1\">".$this->datocerca[$dato8]." ".$this->datocerca[$dato3]."</a>
                        </div>
                        <div style=\"text-align: left;height:60px; width:100%\">
                        <div>"
    .substr($this->datocerca[$dato6], 0300)."...</div>
                        </div>
                        <div style=\"height:15px\">
                        <div style=\"text-align: right;\"><span style=\"font-weight: bold;color: #F96300;\">Disponibilit&agrave;:</span> "
    .PROZKommerce::show_disponibilita($this->datocerca[$dato5])."</div>
                        </div>
                        </td>
                        </tr>
                        </table>
                        "
    );
                    }
                }
            }
        } 

  9. #9
    a me serve che stampi tutti i prodotti.. con affianco l'ultima foto inserita per quel prodotto.. :| un limit1 mi stampa solo un prodotto ^^

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.