Autor Zpráva
Mufna
Profil
Zdravím Vás. Pomůžete mi prosím sestavit dotaz na DB ? Logicky má vypadat takto:

"Vyber všechny reference jednoho typu a v jednom jazyce + ke každé vybrané referenci zahrň všechny dostupné informace ze všech 3 tabulek"

pro 2 tabulky (když jsem ještě neměl tabulku pro reference_translations - všechny texty byly v tabulce reference_list - mi fungoval dotaz (co je kurzívou, to už jsem přidal a zatím nevím jak dál):
$res=query("SELECT * FROM ".$tbl_prefix."reference_list, ".$tbl_prefix."reference_types, 
	    ".$tbl_prefix."reference_translations
                   WHERE ".$tbl_prefix."reference_list.type_id = ".$tbl_prefix."reference_types.id 
                   AND ".$tbl_prefix."reference_types.id='1'");
                   poslední AND jsem měl původně ".$tbl_prefix."reference_list.type_id='1'" - nevím co mi to
	   udělá, když to změním


tabulky jsou přes id provázany nějak takto:

reference_types
id
ref_type_name (nepřekládá se, jen pro interní potřebu - ale chtěl bych to zahrnout do výpisu)

reference_list
id
type_id (FK)
prvni_sloupec (nepřekládá se, ve výpisu samozřejmě bude)
druhy_sloupec (nepřekládá se, ve výpisu bude)
images
atd.

reference_translations
id
ref_id (FK)
lang_id (FK)
prvni_text
druhy_text
atd.
Mufna
Profil
Tak jsem si ten dotaz nakonec nějak zpytlíkoval. Ale chtěl bych ještě ošetřit situaci, že když k dané referenci neexistuje žádný jazykový překlad, aby se alespoň zobrazily základní údaje (které se nepřekládají) z tabulky reference_list. V mé současné verzi dotazu je to tak, že když neexistuje překlad v tabulce reference_translations, tak se nic nezobrazí.

SQL:
$res=query("SELECT * FROM ".$tbl_prefix."reference_list, ".$tbl_prefix."reference_types, ".$tbl_prefix."reference_translations
WHERE ".$tbl_prefix."reference_list.type_id = ".$tbl_prefix."reference_types.id 
AND ".$tbl_prefix."reference_translations.ref_id = ".$tbl_prefix."reference_list.id 
AND ".$tbl_prefix."reference_translations.lang_id = '".$_SESSION['lang_code']."'
AND ".$tbl_prefix."reference_types.id='1'");

Vaše odpověď

Mohlo by se hodit

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: