Salve a tutti,
sto realizzando un applicazione multilingua e sto adottando la struttura DB di seguito:
Questo modello l'ho trovato proprio qui sul forum e continuando le ricerche sul web ho visto che si tratta comunque di una soluzione ormai ampiamente applicata e logicamente ben fatta.codice:CREATE TABLE article ( id INT UNSIGNED AUTO_INCREMENT NOT NULL, last_update INT UNSIGNED NOT NULL, PRIMARY KEY(id) ); CREATE TABLE article_data ( article_id INT UNSIGNED NOT NULL, language_id INT UNSIGNED NOT NULL, description TEXT NOT NULL, name VARCHAR(128) NOT NULL, INDEX(article_id, language_id) ); CREATE TABLE languages ( id INT UNSIGNED AUTO_INCREMENT NOT NULL, language CHAR(2) NOT NULL, country CHAR(2) NOT NULL, INDEX (language, country), PRIMARY KEY(id) );
Il mio dubbio riguarda la fase di estrazione dei dati.
Non so come scrivere la query per ottenere i dati degli articoli in una lingua di default (es. italiano) se non sono presenti nella lingua con cui l'utente sta visualizzando il sito.
Parto da questa query base:
Con questa query se l'articolo richiesto non è presente nella lingua selezionata la query restituisce un insieme vuoto. Secondo voi come posso manipolarla per restituire comunque il risultato in una lingua che definisco di default?codice:SELECT .... FROM article_data data, languages lang, article art WHERE art.id = [$article_id] AND lang.id = [$lang] AND data.article_id = art.id AND data.language_id = lang.id

Rispondi quotando
