Pagina 1 di 1

motore di ricerca complesso php

Inviato: 20/03/2014, 0:48
da margis6972
Buongiorno a tutti, premetto che sono un neofita di php.

ho bisogno per la mia attività di un motore di ricerca per selezionare dei professori in base alle loro specializzazioni, regioni, città, ecc.

ho realizzato un Db con phpmyadmin che mi fa fare una sola selezione, ad esempio se metto la parola che m'interessa, ad esempio farmacista, mi estrapola la singola scheda del professionista. 

A me però serve che nel motore di ricerca si possa ad esempio scrivere farmacista a bologna e mi restituisca un elenco completo di tutti i farmacisti a bologna, meglio se indicando anche un Cap oppure una via, avendo la lista che mi calcoli la distanza dall'indirizzo specificato, partendo da quelli più vicini e man mano più lontani.

ragazzi non ho la minima idea di come possa far convergere le informazioni. 

Posso creare le tabelle, indicando tutto, anche i prezzi, ecc. Lo so fare...

ma non so come sia fa per il resto, qualche anima pia potrebbe aiutarmi con grande pazienza?

Devo necessariamente realizzare questo motore di ricerca ma non ci riesco.

Grazie a tutti anticipatamente. 

Mario

Re: motore di ricerca complesso php

Inviato: 21/03/2014, 9:51
da Barrnet
Dovresti fare delle query con più condizionali concatenati, magari in AND (per esempio professione e luogo).

Re: motore di ricerca complesso php

Inviato: 01/04/2014, 19:57
da MattiaPiccinini
Mettendo caso che il tuo db sia:

TABELLA_PROF
+----------+----------------+------------------+-------+--------+
Nome Cognome Professione Cap Via
+----------+----------------+------------------+-------+--------+


E che tu abbia già creato la form o il metodo che ti tira fuori in variabili quello che vuoi trovare
es
$nome = "Marco";
$cap = "45012"; (full random)

A seconda delle variabili che hai, o non hai, devi creare una querry del genere:

Codice: Seleziona tutto

"SELECT * FROM TABELLA_PROF WHERE Nome ='".$nome."' AND Cap = '".$cap."'"
Questa "Parsandola" con un processo tipo:

Codice: Seleziona tutto

while($row = mysql_fetch_array($SqlResp)){
echo $row['Cognome'];
}
Nel quale $SqlResp è la risultante di:
$SqlResp=mysql_query("SELECT * FROM TABELLA_PROF WHERE Nome ='".$nome."' AND Cap = '".$cap."');
Ti permette di estrapolare tutte le informazioni riguardanti TUTTE LE RIGHE CHE SODDISFANO LE CONDIZIONI DELLA QUERY, poi sta a tè giostrarti con esse.

Ricordati che devi aggiungere tanti (spazio o a capo)AND {NomeColonna} = '{valore che deve essere presente}' quanti sono i fattori che restringono la ricerca.

Ricorda che se vi sono 2 o più righe che contengono la condizione che tu gli hai specificato il while farà 2 più "giri" cioè tanti quante le persone trovate che hanno le caratteristiche richieste.

Sono stato sul generale e posso dirti che per risolvere il tuo problema devi fare un po di prove MA SOPRATTUTTO devi studiare su siti come : http://www.w3schools.com/sql/sql_and_or.asp, che devono diventare la tua bibbia dal momento che contengono tutto ciò che ti serve per affrontare tutti i tuoi problemi.

Ciao ;)