Select LIKE in mysql, un semplice sistema di ricerca in php per il nostro sito.

Tutorial php

Cerchiamo all'interno di una tabella (users) un dato che ci interessa. Supponiamo di avere un database che contiene n. aziende, ed in questa tabella abbiamo vari campi fra cui il campo "ragionesociale". Vogliamo cercare tutte le aziende che abbiano il nominativo "simile" a "Rossi".

Modulo di ricerca: {ps. consiglio di creare un file da includere nella pagina, in modo da intervenire modificandolo UNA sola volta indipendentemente dal numero di pagine del sito. Chiamiamo questo file ricerca.php, e lo includiamo.}

Pagina ricerca.php
Prima di tutto inseriamo nel codice sorgente della pagina un semplice form di ricerca come questo:






<form id="search" action="/search.php" method="post">
<input type="text" value="Ricerca per nome azienda" name="search" size="50" />
<input type="submit" name="submit" value="Cerca!" /></form>

Il form punta alla pagina /search.php.

Includiamo "ricerca.php" nelle pagine del sito:
utilizzando la stringa <? include('ricerca.php');?>


Pagina search.php: la pagina che visualizzerà i risultati della nostra ricerca. Incolliamo nel punto in cui vogliamo far comparire i risultati della riceca questa porzione di codice:

<? //richiamiamo la stringa di ricerca:
$search = $_POST['search'];
//contiamo i risultati trovati e stampiamo il numero:
$count = mysql_query("SELECT COUNT(id) FROM users where users.ragionesociale LIKE '%$search%'");
$res_count = mysql_fetch_row($count);
// numero totale di records
$tot_records = $res_count[0];
echo"<H3>HO TROVATO: $tot_records RISULTATI x  &quot; $search &quot;</H3>";
//cerchiamo nel database i dati corrispondenti:
//query di ricerca
$ricerca="SELECT users.ragionesociale, users.id
FROM   users
where users.ragionesociale LIKE '%$search%'";
$result = mysql_query($ricerca);
$number = mysql_numrows($result);
$y = 0;
while ($number > $y)
{

$id= mysql_result($result,$y,"id");   
$ragionesociale    = mysql_result($result,$y,"users.ragionesociale");
//stampo a video le singole tabelle che contengono i risultati
echo"
<table width=450>
<tr>
<td valign=top >
<a href=azienda.php?ID=$id >
$ragionesociale</a><br />
</td></tr></table>";
 // il ciclco continua
$y++; }

?>

La sezione di query " where users.ragionesociale LIKE '%$search%'" può essere integrata da altri valori, per esempio: where users.ragionesociale LIKE '%$search%' or users.website LIKE '%$search%' ... ecc...

Personalizzando la query $ricerca a piacere si otterranno risutati completi e dettagliati, andando a richiamare campi come il telefono, l'indirizzo del sito, la p.iva, la città ecc...
   

Nessun commento:

Posta un commento