[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