- Home
- Categorie
- Coding e Sistemistica
- PHP
- Ricerche Avanzate
-
Ricerche Avanzate
Ciao a tutti. Sto sistemando finalmente il mio sito dedicato agli hotel e mi sono bloccato alla cosiddetta "ricerca avanzata".
Sinceramente non saprei dove mettere mani.
Una cosa del tipo: http://www.alberghitalia.com/prenota.htmlConfidando nell'aiuto di qualcuno auguro ancora buone feste.
-
Ciao,puoi basarti su questo articolo http://php.html.it/guide/lezione/2285/il-motore-di-ricerca/
-
Si quello già letto. Le query cosiddette "semplici" riesco a farle, del tipo con un solo campo( come si vede dal sito). Ma le altre?? Mi daresti un abbozzo di come fare?
Thank U
-
Nessuno mi da una mano, uno spunto da dove iniziare???
-
Non ho ben capito cosa ti serva, pertanto spero di imbroccare la risposta
Suppongo tu abbia un db e che tale db ha dei campi con i quali restringere la richiesta.
In tal caso devi impostare una query del tipo:
Select * from 'nome_tabella' where condizione1='alfa', condizione2='beta', ...., condizionen='omega';
Il punto è creare tale query, che suppongo farai attraverso php visto dove hai postato la richiesta.
Ti occorre pertanto filtrare i campi vuoti da quelli pieni.
In che modo?Potresti innanzitutto controllare che sia settata la variabile corrispondente,
$_POST['numero_stelle'] per dirne una e controllare che abbia un valore coerente, da 1 a 5 ad esmepio.In tal caso il codice potrebbe essere una cosa del tipo:
$addquery=(isset($_POST['numero_stelle']) && $_POST['numero_stelle']>=1 && $_POST['numero_stelle']<=5)?" AND numero_stelle=".$_POST['numero_stelle']:"";
e via di seguito.
$addquery è la variabile che ti serve e potresti concatenarla utilizzando vari controlli.
alla fine otterrai una cosa del tipo:
$q=mysql_query("Select * from 'nome_tabella' where".$addquery.";");
Ovviamente occorre stare attento al casting delle variabili, controllare che i dati che ti arrivano dal post siano coerenti con quelli che ti aspetti, controllarne il tipo, usare mysql_escape_string un po' ovunque.
Non è una cosetta da poco per dire. Spero di averti dato almeno qualche spunto per iniziare.
-
Diciamo che hai azzeccato il problema e mi hai dato un grosso aiuto almeno nel cominciare.
Grazie.