Ciao a tutti,
ho un problemino su un form per ricerca multipla nel database Mysql.
Tutto bene se ricerco solo un campo, ma se faccio un form con la possibilità di ricercare per titolo opuure per autore o per editore, allora non riesco a farlo funzionare.
Guardando il forum (una benedizione) sono riuscito a preparare il codoce che allego. Premetto che non mastico PHP e che senza di voi non sarei mai potuto arrivare fino a questo punto e per me è già un successo, ma ora proprio non riesco ad andare avanti.
Il codice che allego, funziona bene se cerco un editore, ma se cerco per autore o titolo, mi stampa tutta la lista dei libri!!! perché???
Vista l'importanza della questione, ringrazio fin d'ora chi vorrà aiutarmi, e sono disponibile a elargire un compenso per risolvere il problema (ci possiamo accordare in privato).
Grazie ancora,
Paolo
ho un problemino su un form per ricerca multipla nel database Mysql.
Tutto bene se ricerco solo un campo, ma se faccio un form con la possibilità di ricercare per titolo opuure per autore o per editore, allora non riesco a farlo funzionare.
Guardando il forum (una benedizione) sono riuscito a preparare il codoce che allego. Premetto che non mastico PHP e che senza di voi non sarei mai potuto arrivare fino a questo punto e per me è già un successo, ma ora proprio non riesco ad andare avanti.
Il codice che allego, funziona bene se cerco un editore, ma se cerco per autore o titolo, mi stampa tutta la lista dei libri!!! perché???
Vista l'importanza della questione, ringrazio fin d'ora chi vorrà aiutarmi, e sono disponibile a elargire un compenso per risolvere il problema (ci possiamo accordare in privato).
Grazie ancora,
Paolo
PHP:
<form action='?ricerca=ok' method='POST'>
<table width="520" height="100" border="1" align="center">
<tbody>
<tr>
<td width="98" height="20">
<font size="4"> Titolo:</font>
</td>
<td width="320" height="20">
<input type="text" size="40" name="cercatitolo">
</td>
</tr>
<tr>
<td width="98" height="20">
<font size="4"> Autore:</font>
</td>
<td width="320" height="20">
<input type="text" size="40" name="cercaautore">
</td>
</tr>
<tr>
<td width="98" height="20">
<font size="4"> Editore:</font>
</td>
<td width="320" height="20">
<input type="text" size="40" name="cercaeditore">
</td>
</tr>
<tr>
<td align="center" colspan="2">
<input type='submit' value='Cerca'>
</td>
</tr>
</tbody>
</table>
<?php
// connessione al database
$db_host = "xxxxx";
$db_user = "xxxx";
$db_password = "xxxx";
$db_name = "xxxxxxx";
//connetto il database
$db = mysql_connect($db_host, $db_user, $db_password) or die ('Errore durante la connessione');
mysql_select_db($db_name, $db) or die ('Errore durante la selezione del db');
// recupero il valore ricerca inviato con get
$ricerca = $_REQUEST['ricerca'];
// vediamo se è stato inviato, e quindi uguale a ok
if ( $ricerca == 'ok' ) {
// recupero ora le stringhe inviate con post
$cercatitolo = $_REQUEST['cercatitolo'];
$cercaautore = $_REQUEST['cercaautore'];
$cercaeditore = $_REQUEST['cercaeditore'];
// ora depuro la stringa da cercare sul database
$cercatitolo = mysql_escape_string(stripslashes($cercatitolo));
$cercaautore = mysql_escape_string(stripslashes($cercaautore));
$cercaeditore = mysql_escape_string(stripslashes($cercaeditore));
// query per titolo
if ( isset ($cercatitolo)) { $query = "SELECT test_prefixLibri.Titolo, test_prefixAutori.Cognome, test_prefixEditori.Nome, test_prefixLibri.Pagine, test_prefixLibri.Collocazione FROM test_prefixLibri, test_prefixAutori, test_prefixEditori WHERE Titolo LIKE '%$cercatitolo%' AND test_prefixEditori.Id_Editore = test_prefixLibri.Id_Editore AND test_prefixAutori.Id_Autore = test_prefixLibri.Responsabilità ORDER BY Titolo";
$risultato = mysql_query($query) or die (mysql_error());
$risposta = mysql_query($query) or die ("Utilizza termini più specifici!");
$dentro_la_query= mysql_fetch_assoc($risposta);}
// query per autore
if ( isset ($cercaautore)) { $query = "SELECT test_prefixLibri.Titolo, test_prefixAutori.Cognome, test_prefixEditori.Nome, test_prefixLibri.Pagine, test_prefixLibri.Collocazione FROM test_prefixLibri, test_prefixAutori, test_prefixEditori WHERE prefixAutori.Cognome LIKE '%$cercaautore%' AND test_prefixEditori.Id_Editore = test_prefixLibri.Id_Editore AND test_prefixAutori.Id_Autore = test_prefixLibri.Responsabilità ORDER BY Titolo";
$risultato = mysql_query($query) or die (mysql_error());
$risposta = mysql_query($query) or die ("Utilizza termini più specifici!");
$dentro_la_query= mysql_fetch_assoc($risposta);}
// query per editore
if ( isset ($cercaautore)) { $query = "SELECT test_prefixLibri.Titolo, test_prefixAutori.Cognome, test_prefixEditori.Nome, test_prefixLibri.Pagine, test_prefixLibri.Collocazione FROM test_prefixLibri, test_prefixAutori, test_prefixEditori WHERE prefixAutori.Cognome LIKE '%$cercaautore%' AND test_prefixEditori.Id_Editore = test_prefixLibri.Id_Editore AND test_prefixAutori.Id_Autore = test_prefixLibri.Responsabilità ORDER BY Titolo";
$risultato = mysql_query($query) or die (mysql_error());
$risposta = mysql_query($query) or die ("Utilizza termini più specifici!");
$dentro_la_query= mysql_fetch_assoc($risposta);}
// verifica dati
if ( $dentro_la_query == TRUE ) {
// stampa dati
echo "<table border width=”540″ border=”2″ frame=”void” cellpadding=”5″ cellspacing=”0″>
<thead>
<tr><th>Titolo<th>Autore<th>Editore<th>Pagg.<th>Scaffale</th></tr>
</thead>";
while($row= mysql_fetch_assoc($risultato)) {
$Titolo = $row['Titolo'];
$Cognome = $row['Cognome'];
$Nome = $row['Nome'];
$Pagine = $row['Pagine'];
$Collocazione = $row['Collocazione'];
echo " <tbody>
<tr bgcolor=”#00FF00″><td><h5>$Titolo</h6><td><h5>$Cognome</h5><td><h5>$Nome</h5><td><h5>$Pagine</h6><td><h5>$Collocazione</h5></tr>
</tbody>";
}
echo " </table>";
}
} else {
echo "Nessun temine alla ricerca trovato";
}
?>