Temat: [php] wyszukiwarka

Mam formularz w którym są pola:

-kraj
-miasto
-pora roku
-cena
itp

Ma to być wyszukiwarka ofert z bazy danych. Oczywiście mogą być wypełnione w formularzu wszystkie bądź tylko niektóre pola.

I teraz mam problem jak taką wyszukiwarkę zrobić, pomyślałem, żeby za pomocą if sprawdzać po kolei które pole zostało wypełnione i jeśli jest wypełnione to doklejać odpowiedni fragment warunku WHERE do zapytania i na koniec wywołać tak sklejone zapytanie.

Pytania:

1. Czy taki pomysł jest dobry czy może jest jakiś lepszy ? Szybszy/łatwiejszy ?
2. Znalezione oferty będą stronicowane np po 20 na stronie i jak zrobić żeby przechodząc na kolejne strony wyniki były zapamiętane bez ponownego wypełniania formularza ?

konto usunięte

Temat: [php] wyszukiwarka

voila: http://nospor.pl/wyszukiwarka-zapytanie-zalezne-od-war...


2. Znalezione oferty będą stronicowane np po 20 na stronie i jak zrobić żeby przechodząc na kolejne strony wyniki były zapamiętane bez ponownego wypełniania formularza ?


imho przetrzymywać parametry w sesji?Krystian Podemski edytował(a) ten post dnia 15.08.09 o godzinie 11:19
Janusz Skudrzyk

Janusz Skudrzyk Członek zarządu,
weblabs.pl

Temat: [php] wyszukiwarka

2. Klucze główne znalezionych rekordów możesz trzymać w sesji, albo w bazie

Wyniki pokazujesz pod adresem np. action=search&type=results (jeśli sesja) albo action=search&result_id=X&page=Y (gdzie: X = mysql_insert_id() wzięta z tabeli wyniki, w której główny klucz jest INT AUTOINCREMENT, Y = numer strony z wynikami)

Przy pokazywaniu rekordy z tabeli z ofertami łączysz z zapamiętanymi kluczami (przy pomocy np. inner join).

Jeśli dane będziesz trzymać w bazie, to możesz dorzucić sobie kolumnę ze znacznikiem czasu. Niech wyniki siedzą przez jakiś czas, a potem sio z bazy. Przy wersji z sesją nie zapomnij o wyczyszczeniu jej przy nowym szukaniu.
Marcin Witek

Marcin Witek isido.pl ułatwia
pracę - polski sytem
zarządzania
projekt...

Temat: [php] wyszukiwarka

Janusz Skudrzyk:
2. Klucze główne znalezionych rekordów możesz trzymać w sesji, albo w bazie

Wyniki pokazujesz pod adresem np. action=search&type=results (jeśli sesja) albo action=search&result_id=X&page=Y (gdzie: X = mysql_insert_id() wzięta z tabeli wyniki, w której główny klucz jest INT AUTOINCREMENT, Y = numer strony z wynikami)

Przy pokazywaniu rekordy z tabeli z ofertami łączysz z zapamiętanymi kluczami (przy pomocy np. inner join).

Jeśli dane będziesz trzymać w bazie, to możesz dorzucić sobie kolumnę ze znacznikiem czasu. Niech wyniki siedzą przez jakiś czas, a potem sio z bazy. Przy wersji z sesją nie zapomnij o wyczyszczeniu jej przy nowym szukaniu.

przechowywanie w sesji ma ten minus, że nie można komuś wysłać linka do wyszukanych ofert (ani nawet sobie tego linka zapisać "na potem"). Więc imho wersja z trzymaniem w bazie będzie tutaj lepsza.

Ale jeśli parametrów nie ma zbyt dużo, to dlaczego nie trzymać ich po prostu w query stringu?Marcin Witek edytował(a) ten post dnia 15.08.09 o godzinie 23:32

Temat: [php] wyszukiwarka

Janusz Skudrzyk:
Wyniki pokazujesz pod adresem np. action=search&type=results (jeśli sesja) albo action=search&result_id=X&page=Y (gdzie: X = mysql_insert_id() wzięta z tabeli wyniki, w której główny klucz jest INT AUTOINCREMENT, Y = numer strony z wynikami)

Przy pokazywaniu rekordy z tabeli z ofertami łączysz z zapamiętanymi kluczami (przy pomocy np. inner join).

Jeśli dane będziesz trzymać w bazie, to możesz dorzucić sobie kolumnę ze znacznikiem czasu. Niech wyniki siedzą przez jakiś czas, a potem sio z bazy.

Z sesją sobie poradziłem. ale tego sposobu nie do końca rozumiem. Możesz bardziej łopatologicznie wytłumaczyć ?

konto usunięte

Temat: [php] wyszukiwarka

Może lepiej skorzystać z gotowca, niż wynajdować koło na nowo?
http://nospor.pl/pager-2.5.1-oraz-epager-n28.html

:-)

Następna dyskusja:

Wyszukiwarka w PHP




Wyślij zaproszenie do