Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> wielojęzykowość, podejście podejściu nierówne
x11100b
post
Post #1





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 20.08.2009

Ostrzeżenie: (0%)
-----


mamy tabele:

Produkty
- id INTEGER
- cena INTEGER

Opisy_produktow
- id INTEGER
- id_produktu INTEGER
- id_jezyka INTEGER
- opis TEXT

Jezyki
- id INTEGER
- blank VARCHAR(255)

w polu "blank" tablicy "Jezyki" przetrzyumujemy tekst inforacyjny typu: dla pl. - "brak informacji w jezyku polskim, wybierz inny jezyk", a dla np. ang. - "information in english not availiable, choose different language"

powiedzmy, ze w sesji trzymamy id aktualnie uzywanego jezyka - chce wydobyc z bazy informacje o cenach produktow z opisami w aktualnym jezyku - a jesli takiego opisu dla aktualnego jezyka nie ma - chce dostac informacje "jezyki.blank"

czy takie podejscie do wielojezykowosci ma sens dla duzych projektow?

uprzejmie prosze o propozycje zapytan realizujacych wydobycie informacji o produktach w danym jezyku - ja nie umiem wymyslic zgrabnego rozwiazania tego problemu....

pozdrawiam,
Lukasz

moze nakresle problem troche dokladniej - w pokazanej wyzej strukturze, zalozmy, ze uzywamy jezyka o ID=1, i wyswietlamy informacje o produktach - uzywam takiego zapytania mysql:

  1. SELECT produkty.id, produkty.cena, opisy_produktow.opis
  2. FROM produkty, opisy_produktow
  3. WHERE opisy_produktow.id_jezyka = 1
  4. AND opisy_produktow.id_produktu = produkty.id


problem pojawia sie, gdy pewien produkt nie ma opisu w rzadanym jezyku (wtedy jest on pomijany na liscie, a wedlug zalozen - powinna byc wyswietlana informacja z tabeli jezyki "brak informacji w jezyku polskim", lub odpowiednio przetlumaczony ten tekst na inne jezyki)

wiadomo wiec, ze zapytanie powinno w FROM zawierac tabele jezyki:

  1. FROM produkty,opisy_produktow, jezyki


oraz, ze SELECT powinien uwzgledniac warunkowosc wartosci kolumny opis:

  1. SELECT produkty.id, produkty.cena, IF(??WARUNEK??, opisy_produktow.opis, jezyki.blank)


skladajac wszystko w calosc otrzymujemy pewien wzor zapytania do dopracowania:

  1. SELECT produkty.id, produkty.cena, IF(??WARUNEK??, opisy_produktow.opis, jezyki.blank)
  2. FROM produkty, opisy_produktow, jezyki
  3. WHERE opisy_produktow.id_jezyka = 1
  4. AND jezyki.id = 1
  5. AND opisy_produktow.id_produktu = produkty.id


jednak nie umiem wymyslic zgrabnego warunku... (IMG:style_emoticons/default/sciana.gif)
Go to the top of the page
+Quote Post

Posty w temacie
- x11100b   wielojęzykowość   15.10.2010, 09:03:44
- - Echonik   [SQL] pobierz, plaintext SELECT produkty.id, pro...   15.10.2010, 12:15:30
- - x11100b   Echonik - dzieki za zainteresowanie tematem, najpr...   15.10.2010, 13:50:43
|- - Echonik   Cytat(x11100b @ 15.10.2010, 14:50:43 ...   18.10.2010, 09:05:04
- - erix   Temat: Wielojezykowosc   15.10.2010, 14:13:53


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 15.09.2025 - 08:49