[php] wielojęzyczność

2012-01-26 14:17:47 Post #1 gość_gość

 
Mam zrobiony prosty sklep internetowy w php + mysql, docelowo miał być 1 język (polski), ale teraz chciałbym wprowadzić 2 języki więcej i zastanawiam się jak to zrobić. Napisałem prostą klasę do obsługi języków na stronie (tj. menu, teksty, waluta). W panelu administracyjnym mam możliwość wprowadzania/edytowania produktów. Zastanawiam się jak zrobić możliwość dodawania produktu w kilku językach. Pomyślałem, że można zrobić coś w rodzaju switch tabs (jquery), ale co dalej? To się tyczy zarówno ceny jak i opisu produktu.

W bazie, tabele z produktami mam taką:

id | cat | name | desc | price

I teraz zastanawiam się czy dodać do tej tabeli kolumnę LANG i tam wrzucać skrót języka, np. pl, en, de... Minusem tego jest ilość rekordów, bo jak będę miał 5 języków, to dla 1 produktu będzie 5 rekordów...

Macie jakiś pomysł?

2012-01-26 14:44:30 Post #2 nospor

 
Tabela produktu:
id | cat | price
Tabela języka dla produktu:
id_prod | lang | name | desc

price zostawiłem w produkcie, bo może by sie dalo automatycznie przeliczac walute? Jak nie, i dla kazdego jezyka chcesz mieć oddzielne price, to przeniesc price do drugiej mojej tabeli.

2012-01-26 14:53:44 Post #3 gość_gość

 
wielkie dzięki, dokładnie o to mi chodziło. Nie pomyślałem o tym

2012-01-26 15:09:49 Post #4 gość_gość

 
a jeszcze jedno: ustawiać jakiś indeks w tej drugiej tabeli?

2012-01-26 15:15:43 Post #5 gość_gość

 
nie widzę możliwości edycja posta więc pisze drugiego

przy dodawania produktu, daje zapytanie:

mysql_query("insert into `tabela` values (null, 'kategoria')")

i teraz w drugim zapytaniu muszę dodać id produktu, ale nie wiem skąd mam je wziąć... słyszałem o mysql_insert_id(); ale podobno to strasznie nie optymalne jest, a ja będę musiał dodać kilka takich rekordów przy dodaniu 1 produktu.

jest na to jakiś sposób?

2012-01-27 07:39:52 Post #6 nospor

 
nie widzę możliwości edycja posta więc pisze drugiego
Trudno, żeby gość mógł edytować posty.... jakbyś się zalogował to byś mógł edytować

słyszałem o mysql_insert_id();
Dobrze słyszałeś. To jedyne słuszne rozwiązanie.
t, a ja będę musiał dodać kilka takich rekordów przy dodaniu 1 produktu.
Ale to żaden wyczyn do bazy dodać parę rekordów

Odpowiedz