webForumDet fria alternativet

Hämta dem som Inte är gemensamma

Databaser & SQL

0 svar · 210 visningar · startad av JonasG

Medlem sedan mars 2001148 inlägg
Frågan#1

Hej!

Har en sajt som jag gör ett "språklager" till. Tanken är att man lätt ska kunna lägga till ett nytt språk och översätta menyalternativ etc.

Jag kör PHP och MySQL.

Nu har jag en tabell, sprakSvenska.
Fälten id, variabel, innehall, tid

Och tabellen, sprakVariabler.
Fälten id, sprak, sub, innehall, tid

sprakVariabler.sub knyter alltså ihop med sprakSvenska.id
sprakVariabler.sprak anger bara vilket språk det är.
Tabellen sprakVariabler kan alltså innehålla många språk.

På sajten kan administratörer via en speciell meny få upp information om det finns några nya variabler att översätta. Jag fyller alltså i information i sprakSvenska och administratörerna översätter till sitt språk, det läggs i sprakVariabler.

Efter denna alldeles för långa förklaring... :-) till frågan:

Jag vill hämta ut alla variabler i sprakSvenska som INTE finns översatta till ett specifikt språk i sprakVariabler.

SELECT * FROM sprakSvenska
LEFT JOIN sprakVariabler ON sprakVariabler.sub = sprakSvenska.id
WHERE sub IS NULL OR sprakVariabler.tid < sprakSvenska.tid
ORDER BY sprakSvenska.sekvens DESC, sprakSvenska.variabel ASC LIMIT 1

Detta fungerar ju när det bara är ett språk, förutom svenska, jag har. Men när jag ska lägga till ett till, måste ju frågan också avgöra om variabeln finns översatt bara för sitt språk eller ej, så att säga...

Tidsaspekten har jag för att avgöra om jag har ändrat på en svensk variabel. LIMIT 1 har jag för att bara visa ett i taget att översätta.

Hm. Det blev rörigt det här.

307 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
118 ms — deklarationer (db)
0 ms — hämta statistik (cache)
171 ms — hämta tråd, inlägg och bilagor (db)
132 ms — ändringar (db)