Ho le tabelle
codice:PRODOTTI id|Nome |Prezzo |Descrizione 1 |Portatile |150,00 |Computer portatilecodice:CATEGORIE ATTRIBUTI id|Categoria attributo 1 |RAM 2 |Processore 3 |Schermocodice:VALORI ATTRIBUTI id|id_categoria|Valore attributo 1 |1 |256 MB 2 |1 |512 MB 3 |1 |1 GB 4 |2 |Pentium 4 5 |2 |AMD Athlon 6 |3 |17" Whidescreen 7 |3 |15" 4:9Quindi seleziono gli articoli unendo le tabelle in questo modo (in questo esempio per selezionarecodice:RELAZIONE PRODOTTI ATTRIBUTI id|id_prodotto|id_attributo 1 |1 |3 2 |1 |5 3 |1 |6
articoli che montano il pentium 4 (Tabella valori attributi id = 4)
Fino a qui tutto a posto, mi ritorna i portatili che montano i pentium 4 ma se provo a fare ua ricerca incrociata ad esempio i portatili con pentium 4 (id = 4) e schermo 17" whidescreen (id = 6), cioe':Codice PHP:$query = "SELECT FROM prodotti
LEFT JOIN relazione_prodotti_attributi AS rel ON rel.id_prodotto = prodotti.id
LEFT JOIN valori_attributi AS attr ON rel.id_attributo = attr.id
WHERE (--alcune mie condizioni--) AND attr.id = 4;";
questa query non ritorna nullaCodice PHP:$query = "SELECT FROM prodotti
LEFT JOIN relazione_prodotti_attributi AS rel ON rel.id_prodotto = prodotti.id
LEFT JOIN valori_attributi AS attr ON rel.id_attributo = attr.id
WHERE (--alcune mie condizioni--) AND attr.id = 4 AND attr.id = 6;";
![]()
![]()
Devo forse far entrare in gioco anche la tabella CATEGORIE ATTRIBUTI?
Quest'ultima la uso per organizzare gli attributi ed evitare che quando inserisco un attributo aad un'articolo non metto ad esempio che un portatile ha un processore pentium 4 ed un amd athlon![]()
Chi mi puo' aitare please???

Rispondi quotando
