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!