![]() |
![]() ![]() |
![]() |
![]()
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:
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:
oraz, ze SELECT powinien uwzgledniac warunkowosc wartosci kolumny opis:
skladajac wszystko w calosc otrzymujemy pewien wzor zapytania do dopracowania:
jednak nie umiem wymyslic zgrabnego warunku... (IMG:style_emoticons/default/sciana.gif) |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 1 Dołączył: 19.05.2010 Ostrzeżenie: (0%) ![]() ![]() |
O to chodziło? |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 16 Pomógł: 0 Dołączył: 20.08.2009 Ostrzeżenie: (0%) ![]() ![]() |
Echonik - dzieki za zainteresowanie tematem, najprostrze rozwiazanie do jakiego udalo mi sie dotrzec opiera sie na LEFT JOIN oraz IFNULL:
pozdrawiam, Lukasz PS> co sadzicie o takim podejsciu do wielojezykowosci systemu? Ten post edytował x11100b 15.10.2010, 13:51:41 |
|
|
![]()
Post
#4
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 1 Dołączył: 19.05.2010 Ostrzeżenie: (0%) ![]() ![]() |
Skrypt jest OK, jeśli bierzesz pod uwagę to, że ma wyświetlić opis produktu, który posiada same spacje lub puste (nie mówię o wartości NULL, bo to nie jest to samo, co ''). |
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 12:14 |