ciao,sentite ho un problema,io ho una pagina cerca.php:
Codice PHP:
<?
//includioma la connessione con mysql
include("config.php.inc");
//cominciamo,la variabile ocntiene il link nell'url della pagina ad esempio per dividere html e php,esempio
//cerca.php = il form per la ricerca cerca.php?pagina=risultati = la pagina dei risultati
$pagina = $_GET[pagina];
if ($pagina == NULL)
{
//ecco la pagina di ricerca
echo "
[b]
<table align=\"center\">
<tr>
<form action=\"cerca.php?pagina=risultati\" method=\"post\">
<center>[b]Motore di ricerca Template[/b]</center>
<td>
<div align=\"left\">
Seleziona lo stile su cui cercare:</td>
<td>
<select name=\"stile\">
<option value=\"Tech\">Tech</option>
<option value=\"Clean\">Clean</option>
<option value=\"Portal\">Portal</option>
<option value=\"Commercial\">Commercial</option>
</select>
</td>
</tr>
<tr>
<td>
Scegli per quale campo cercare:
</td>
<td>
<select name=\"campo\">
<option value=\"nome\">Nome</option>
<option value=\"autore\">Autore</option>
<option value=\"tema\">Tema</option>
<option value=\"tutti\">Tutti</option>
</select>
</td>
</tr>
<tr>
<td>
query di ricerca:
</td>
<td>
<input type=\"text\" name=\"parola\">
</td>
</tr>
<tr>
<td>
<input type=\"submit\" value=\"cerca\">
</td>
</tr>
</div>
</table>
[/b]";
}
if($pagina == risultati)
{
//funzione per scrivere rosso
function rosso($testo)
{
$testo = "<font color=\"FF0000\">$testo</font>";
return $testo;
}
//settiamo le informazioni ricevute ed eseguiamo le query necessarie
$stile = $_POST[stile];
$campo = $_POST[campo];
$parola = $_POST[parola];
//settati i parametri settiamo la query
if ($campo == tutti)
{
$query = "SELECT id FROM articoli WHERE stile = '%$stile%' && nome LIKE '%$parola%' || autore LIKE '%$parola%' || tema LIKE '%$parola%'";
}
else
{
$query = "SELECT id FROM articoli WHERE stile = '%$stile%' && '$parola' LIKE '%$campo%'";
}
$result = mysql_query($query);
if (mysql_num_rows($result) == NULL)
{
echo "Spiacente nessun risultato ottenuto per il tuo criterio di ricerca";
unset($row);
unset($row2);
}
while ($row = mysql_fetch_array($result))
{
$query2 = "SELECT * FROM articoli WHERE id = '$row[id]'";
$result2 = mysql_query($query2);
while ($row2 = mysql_fetch_array($result2))
{
print "[b]Nome:".rosso($row2[nome])."
Autore:".rosso($row2[autore])."
Stile:".rosso($row2[stile])."
Tema:".rosso($row2[tema])."
________________________
[/b]";
}
}
}
?>
primo problema: la query non funziona se si cerca per i campi singolarmente tipo nome,tema,autore, secondo problema:
quando un utente seleziona stile la query dovrebbe cercare
i campi simili alla query sui campi nome o tema o autore dove però lo stile è scelto prima dall'utente!
il problema è che la query fa tutto un susseguirsi di or mentre vorrei che stile fosse stile e che l'or sia solo per i campi nome,autore,tema!