[PHP|MYSQL] Insertowanie do Bazdy danych multicheckbox'ów

Witam

 

Ło panie my z Heńkiem za flaszkem tesz takie architektury robim. Jak chcesz wybrać wszystkie filmy, które są w konkretnej kategorii, np. horror?

Co do problemu: http://www.html-form-guide.com/php-form/php-form-checkbox.html

Za pomoca implode z liczb 2 13 20 chcę mieć stringa 2,13,20 (rozdzielony przecinkami) - w efekcie chce mieć w bazie np: 2,13,20  - co bedzie odpowiadało kolejno Przygodowy, Fantasy, Akcja (Te numery są przypisane na stałe).

 

Za pomocą Explode, rozdziele ciąg według przecinka. Dostane w wyniku konkretne liczby które bedę porwnywał z tym co wybrał użytkownik.

Jak już wspomniał kolega kostek135 , nie powinieneś trzymać w jednym polu bazy danych kilku wartości jakiegoś pola, bo to po pierwsze nie jest eleganckie, a po drugie utrudnia operowanie na takich danych (wyszukiwanie). Warto, żebyś od razu poznawał i stosował poprawne konstrukcje programistyczne, bo Ci się to przyda w przyszłości. Rozwiązaniem dla potrzeby trzymania kilku wartości (cech) jakiejś danej jest stworzenie osobnej tabeli, zawierającej pary (id_elementu, id_cechy), plus oczywiście wartość indeksu rekordu (id).

Pytam po raz kolejny jak chcesz wyciągnąć wszystkie filmy z kategorii np. 13 (powiedzmy, chce sobie obejrzeć coś z działu horror, tylko jeszcze nie wiem co)? Jeśli będziesz miał milion filmów, będziesz musiał z bazy pobrać milion filmów, przeiterować milion filmów, wykonać przeszukanie miliona stringów w celu znalezienia przecinków. Czy nie lepiej byłoby wybrać tylko te, które spełniają warunek: where categoryId = 13?

 

Programista nie zaczyna pisać kodu bez analizy, czyli etapu, po którym dokładnie wie jak będzie działał system.

Witam

 

Trochę mnie zeszło, ale musiałem strawić sporo materiału :slight_smile:

 

@Pablo_Wawa

 

Oczywiście miałem świadomość że kostek135 ma dużo doświadczenia, ale jako uparciuch chciałem spróbować swojej wersji. Udało mi się dojść do tego co chciałem, ale w końcowym efekcie mam tak jak wy mi poleciliście - implode i explode nie dało by rady przy dużej ilości filmów. Szczerze mówiąc najbardziej zależy mi na nauce. Bo testując swoje pomysły, oraz analizując i wprowadzając w życie to co Wy mówicie dużo już się nauczyłem (I bardzo za to dziękuje!).