Salve ragazzi.
Sto facendo un catalogo multilingua.
In questo catalogo l'admin ha la possibilità di inserire vari dati nelle varie lingue disponibili. Ora, l'admin, potrebbe anche decidere di inserire alcune informazioni multilingua in italiano e non inserirle in inglese e cose del genere.
Ci sarà, però, sempre una lingua "completa" nel senso che in quella lingua i dati saranno sicuramente presenti per tutti i prodotti.
La query, quindi, dovrebbe estrarre i dati nella lingua selezionata dall'utente ma, qualora l'admin non abbia inserito i dati in quella lingua, dovrà estrarre i dati nella lingua sicuramente presente.
Io ho provato a fare una cosa del genere:
Codice PHP:
SELECT catalog_products.name AS name ,
catalog_objects.obj AS obj ,
catalog_products.code AS code ,
catalog_brands.brand AS brand ,
catalog_materials.material AS material ,
catalog_products.price AS price ,
catalog_products.discount AS discount ,
catalog_products.availability AS availability ,
catalog_targets.target AS target ,
catalog_products.inserted AS inserted ,
catalog_products.views AS views
FROM catalog_products
LEFT JOIN catalog_objects ON catalog_objects.ref = catalog_products.obj
LEFT JOIN catalog_brands ON catalog_brands.id = catalog_products.brand
LEFT JOIN catalog_materials ON catalog_materials.ref = catalog_products.material
LEFT JOIN catalog_targets ON catalog_targets.ref = catalog_products.target
WHERE catalog_objects.lang = 1 OR catalog_objects.lang = 2
AND catalog_materials.lang = 1 OR catalog_materials.lang = 2
AND catalog_targets.lang = 1 OR catalog_targets.lang = 2
Con l'OR, però, di 11 righe che andrebbero estratte me ne estrae ben 84. Come risolvere il problema? Se non fossi stato abbastanza chiaro ditemelo che cerco di spiegarvi meglio la situazione. Grazie mille! Ciao!