![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 63 Pomógł: 0 Dołączył: 1.09.2009 Ostrzeżenie: (0%) ![]() ![]() |
Muszę stworzyć wyszukiwarkę, która będzie wyciągać z bazy danych określone rekordy.
Sama wyszukiwarka nie stanowi dla mnie problemu, zastanawiam się jedynie nad zapytaniem. Chodzi o to, że pól, przy pomocy których można wyszukiwać jest 16, użytkownik może podać wartość w dowolnych polach. I ważne, aby z bazy pobrać rekordy, które spełniają wszystkie warunki. Zastanawiam się, jak to zrobić, nie tworząc wielkiego skryptu, najlepiej opierając się na jednym zapytaniu. Wpadłem na pomysł, żeby najpierw przerobić dane, które użytkownik poda w wyszukiwarce, zamienić to w część zapytania (WHERE jeden="$jeden", dwa="$dwa" itd) i dopiero wtedy podstawić pod zapytanie. Jednak zastanawiam się, czy nie ma prostszego rozwiązania. Ma ktoś jakiś pomysł, albo spotkał się z tym już? I przy okazji, tak się ostatnio zastanawiam czemu zazwyczaj nie stosuje się kodowania np. md5(md5($zmienna)), tylko różnych kombinacji. Co prawda obecnie nie stanowi problemu odczytanie prostych haseł w md5, jednak podwójne kodowanie powinno załatwić sprawę. Czyż nie? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 63 Pomógł: 0 Dołączył: 1.09.2009 Ostrzeżenie: (0%) ![]() ![]() |
Teraz rozumiem (IMG:style_emoticons/default/smile.gif)
Skorzystałem z tego skryptu, który podał @nospor. Poszczególne warunki wyglądają tak:
Muszę dodać możliwość korzystania z różnych operatorów. Chodzi o takie operatory, jak <, >, czy też <> (inny niż dany rekord). Ogólnie potrafię sobie z tym poradzić, jednak problemem jest to, że pól po których można wyszukiwać jest ponad 40, a nie chcę tworzyć kodu, gdzie sprawdzałbym przy każdej wartości $_POST[], czy znajduje się jeden z określonych znaków. Mógłby mnie ktoś naprowadzić na coś, co pozwoliłoby zautomatyzować taką funkcjonalność? Że domyślnie jest po nazwie pola w bazie =, jednak jeśli poda się w wyszukiwanej frazie na początku <, wtedy = zamienia się na < i powstaje coś takiego:
Co ważne, zależy mi też na tym, aby w razie podania np. takiej frazy "17 ^ >19 ^ <>22", skrypt tworzył część warunku, wyglądającą tak: "id=17 OR id>19 AND id<>22" (czyli ma pokazać rekord 17, a także większe od 19, bez rekordu 22). Ten post edytował Cromwell 27.11.2009, 13:48:15 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 9.10.2025 - 16:54 |