Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] Wyszukiwanie, rozdzielenie ciągu
Forum PHP.pl > Forum > Przedszkole
kielich
Witam potrzebuje napisać funkcję która będzie przeszukiwała tabele i z góry zdefiniowane kolumny
Problem leży jedna po tej stronie że właściciel sam "składa" sobie zapytanie.

Czyli po prostu wybiera sobie jaką tabele przeszukuje a polu typu input wpisuje np. Kolor == czerwony OR Kolor == biały .
Moje pytaniem, jak najlepiej to rozwiązać, najbaezpieczniej i optymalniej.

Dziękuje za sugestie.
freemp3
"Składanie" w ten sposób zapytania nie jest zbyt bezpiecznym rozwiązaniem. Można bez problemu dodać drop lub inne cuda.
Może lepiej jeśli wybór kolumny oraz operatora porównania także będzie wybierany, a dopiero wartość będzie wpisywana i podstawiana. Oczywiście wybraną kolumne oraz operator też trzeba będzie sprawdzić czy są poprawne a nie tylko przekleić wartość z posta.
W przypadku, gdy użytkownik, będzie chciał użyć OR lub AND można dodać "+", który będzie dodawał kolejny tego typu formularz.
mmmmmmm
Z doświadczenia wiem, że nie należy dawać użytkownikowi do wyboru OR lub AND.
Trzeba mu powiedzieć i zakodować : albo AND, albo OR. Inaczej prosisz się o problemy.
Spawnm
Musisz napisać własny parser, rozbijasz ciąg po spacjach i analizujesz każdą część. Wartości pól bindujesz, reszta leci z tablic twojego parsera. Jeśli user coś źle napisze, lub spróbuje ataku, parser tego nie uzna i zapytanie się nie wykona ze względu na wyrzucony wyjątek.
Tutaj można też sie zainteresować query builderami.
Inna opcja to ta którą podał @freemp3 generowanie inputów i selectów o odpowiednich nazwach w js, po stronie php znowu parser, ale już prostszy.
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.