Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2004
    Messaggi
    1,627

    [MySql] Query in più tabelle

    Ciao a tutti!
    volevo chiedervi un'aiuto:
    ho una
    tabella prodotti ,
    tabella caratteristiche-prodotti ,
    tabella correlazione-prodotti caratteristiche (sono contenuti l'id del prodotto e l'id della caratteristica)

    Da un form faccio una semplice ricerca i vari campi del colore rosso, e visualizzo la lista dei prodotti che contengono nei vari campi il colore rosso;

    Codice PHP:
    $query "SELECT * FROM  tabella WHERE (titolo LIKE '%".$valore."%' OR descrizione LIKE '%".    $valore."%' OR sottomenu LIKE '%".$valore."%' OR testo_vario LIKE '%".$valore."%') AND published = 1 ORDER BY nome ASC " 
    Ora vorrei filtrare il risultato di questa query con i la lista delle tabella caratteristiche-prodotti, come và gestita ?

  2. #2
    Utente di HTML.it
    Registrato dal
    Nov 2004
    Messaggi
    1,627
    UP!

  3. #3
    un modo potrebbe essere :

    - creare una vista con la query postata ;
    - mettere in Join vista e tabella (caratteristiche-prodotti)
    Non si può risolvere un problema usando lo stesso modo di pensare che ha creato quel problema.
    Albert Einstein

    Siate Affamati, siate Folli, siate Onesti e siate Generosi

  4. #4
    Utente di HTML.it
    Registrato dal
    Nov 2004
    Messaggi
    1,627
    ho messo la query in una vista:

    $query= "CREATE VIEW listaprodotti AS SELECT * FROM prodotti....... ";
    $db->setQuery($query);

    $query = "SELECT * FROM listaprodotti ";
    $db->setQuery($query);

    ma non capisco il come inserire il Join

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2004
    Messaggi
    1,627
    ho provato in altra maniera, impostando così la query:

    SELECT * FROM prodotti , correlazioni WHERE .... AND correlazioni.prodotto_id = prodotti.prodotto_id.......

    e mi restituisce i prodotti che hanno una correlazione, però io vorrei invece che mi estrapolasse solo i prodotti che hanno una determinata correlazione (una variabile che passo dal form)

    Es. dal mio form ricerca una MAGLIA(campo imput) ROSSA (scelta multipla)

    ora vorrei ricercare tutte le MAGLIE ROSSA , logicamente il campo ROSSA la trovo come correlazione nella tabella correlazione dove ho l'ID del prodotto (MAGLIA) e l'iID del colore

  6. #6
    Utente di HTML.it
    Registrato dal
    Nov 2004
    Messaggi
    1,627
    $query = "SELECT * FROM j30_prodotti WHERE

    ( campo1 LIKE '%".$valore."%' OR campo2 LIKE '%".$valore."%' OR campo3 LIKE '%".$valore."%' OR campo4 LIKE '%".$valore."%' )

    AND tabella_correlazione.prodotto_id = prodotti.prodotto_id
    AND j30_tabella_correlazione.id_colore = $rosso AND j30_tabella_correlazione.id_colore = $giallo


    AND published = 1 ".$betw." ORDER BY prodotto_nome ASC ";

    ora il tutto funziona fino a che non ricerco tutti i prodotti con che possono essere di colore giallo o anche rosso.
    Ciaè se cerco un colore alla volta la query funziona perfettamente , se ne cerco più di uno la query non funziona più
    ho evidenziato di nero la parte di filtraggio in base alla correlazione

  7. #7
    Utente di HTML.it
    Registrato dal
    Nov 2004
    Messaggi
    1,627
    UP!

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.