Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php]Zapisałem dane z kilku checkboxów do jednej komórki bazy. Jak teraz wyświetlić rekordy, które mają "zaznaczone" pole X
Forum PHP.pl > Forum > Przedszkole
kukix
Witam.
Zapisałem dane z kilku pól checkbox do jednej komórki "varchar(255)".. identyfikatory tych pól są oddzielone średnikami...

przykład: ;1;3;5;6;9;11;

Problem jest taki, że nie wiem, jak najlepiej (najwydajniej) wyświetlić rekordy, które są przypisane do checkboxa np 2.

teraz robiłe to tak:

  1. SELECT * FROM tabela WHERE nazwa_pola LIKE '%;2;%'


Problem w tym, że rozwiązanie z like jest bardzo "niewydajne".. czy można jakoś inaczej zapisac info o zaznaczonych polach checkbox w jednej komorce i pozniej wyswietlac odpowiednie rekordy?? Ps .. ilość checkboxów sie zmienia i może ich być bardo duzo ..

Będę wdzięczny za wszelkie wypowiedzi.

------------------------------------- EDIT ----------------------------------------

wpadłem teraz na pomysł, żeby stworzyc dodatkową tabele..
  1. tabela1
  2. checkbox_id tinyint(3)
  3. pole_id int(10)

tabela ta będzie łączyć tabele checkboxów i artykułów.

i tama dwia pola "checkbox_id" i "pozycja_id".. i w jednym zapisywac id pozycji..
nospor
Cytat
wpadłem teraz na pomysł, żeby stworzyc dodatkową tabele..
to rozwiązanie moze byc. Jest tez inne, moze lepsze (w zaleznosci od typu danych i ich zastosowania):
trzymaj dane bitowo. tutaj dawałem przykład:
http://forum.php.pl/index.php?showtopic=126235&hl=bitowe
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.