konstrukcja zapytania

0

Witam,

Moja baza danych posiada dwie kolumny: "zdarzenie_1" i "zdarzenie_2" i w każdym wierszu przechowywana jest data wystąpięnia danego zdarzenia, bądź 0, gdy zdarzenie w ogóle nie zaszło.

Teraz, z poziomu CodeIgniter'a chcę przefiltrować bazę i wyświetlić, np wszystkie wiersze, dla których np "zdarzenie_1" wystąpiło. Robię to tak, że wysyłam ukryty obiekt formularza z wartością:

 <input type="hidden" value="`zdarzenie_1` != 0" />

i potem odbieram te dane i wartość dodaję bezpośrednio do zapytania.

Czy to tak można robić ? znacie lepsze rozwiązanie ?
pozdrawiam KL.

0

O kurcze, od czego by tu zacząć...
Po pierwsze średnio rozumiem strukturę Twojej bazy, "baza danych posiada dwie kolumny"? Może posiadać dwie tabele, albo tabela może posiadać dwie kolumny. Załóżmy, że chodzi o to drugie. Po co przechowujesz zero dla zdarzenia do którego nie doszło? Skoro nie doszło do zdarzenia to nie lepiej w ogóle nie insertować rekordu?
Teraz co do sposobu tworzenia zapytania, nie dość że informujesz potencjalnego użyszkodnika o tym jakiej bazy używasz (znaczniki "``"), pokazujesz nazwę pola w Twojej bazie ("zdarzenie_1") to wygląda na to, że wstawiasz to całe wyrażenie w query. A co jeżeli ktoś zmodyfikuje przesyłane dane na przykład tak: "zdarzenie_1 != 0 or 1=1;" (lajtowa wersja)?

EDIT: Aj coś sobie z formatowaniem nie mogę poradzić.

0

@marcinsvr napisał:

Po pierwsze średnio rozumiem strukturę Twojej bazy, "baza danych posiada dwie kolumny"?

to hipotetyczna baza, robię panel zarządzania pewnym systemem. Oczywiście, chodziło mi o tabele, która jest zbudowana z różnych pól, m.in. te opisane wyżej, określające pewne zdarzenia.

@marcinsvr napisał:

Skoro nie doszło do zdarzenia to nie lepiej w ogóle nie insertować rekordu?

@lelas napisał:

chcę przefiltrować bazę i wyświetlić, np wszystkie wiersze, dla których np "zdarzenie_1" wystąpiło.

nie chce wrzucać do bazy, tylko z niej wyciągać.

no dobrze, poprawiłem to do takiej postaci

<input type="hidden" name="zdarzenie_1" value="1" />

lub, gdy zdarzenie nie wystąpiło:

<input type="hidden" name="zdarzenie_1" value="0" />

gdzie powinienem przechowywać dane ? w poście jest o tyle lepiej, że pasek adresu nie jest zabrudzony, natomiast mam problem z przechodzeniem potem na następne podstrony (paginacja wyników)...

0

To może podstawy formularzy html. Żeby dane z formularza zostały przezłane na serwer (post'em czy get'em) trzeba ten formularz submit'ować.
Jak masz zrobioną paginację? Są to linki z np. &page=3? jeśli tak to tu nie jest żaden formularz przesyłany, tylko jest to wywołanie strony (skryptu) z jakimiś parametrami, więc w tym przypadku nie masz innego wyjścia, jak dołączyć dane o filtrze do querystring lub możesz trzymać je w sesji, oczywiście pamiętając o tym, aby jakoś sensownie nimi zarządzać.
Jeszcze kwestia jak dokonujesz wygoru filtra, jak wybierasz że mają się wyświetlać rekordy dla których wystąpiło zdarzenie_1?

1 użytkowników online, w tym zalogowanych: 0, gości: 1