Salve, sono in difficoltà con il PHP, ed allora ricompaio da queste parti, nella speranza di trovare un aiuto al mio problema.
Sto cercando di realizzare un piccolo motore di ricerca, che mi dia la possibilità di visualizzare il form da compilare per la ricerca e il risultato della ricerca nella stessa pagina.
PEr far questo ho creato una pagina search.php così fatta:
Codice PHP:
<?
include("includes/layout.php");
include("includes/header.php");
?>
<form method=post action=search.php>
<table class="modulo" width="60%" border="1" align="center" cellpadding="2" cellspacing="0">
<tr>
<td>Mese: </td>
<td><select id="mese" name="mese">
<option value="0">Tutti</option>
<option value="1">Gennaio</option>
<option value="2">Febbraio</option>
<option value="3">Marzo</option>
<option value="4">Aprile</option>
<option value="5">Maggio</option>
<option value="6">Giugno</option>
<option value="7">Luglio</option>
<option value="8">Agosto</option>
<option value="9">Settembre</option>
<option value="10">Ottobre</option>
<option value="11">Novembre</option>
<option value="12">Dicembre</option>
</select></td>
<td>Anno: </td>
<td><select id="anno" name="anno">
<option>2008</option>
<option>2009</option>
</select></td>
<td>Auto: </td>
<td><select id="auto" name="auto">
<option>Tutte</option>
<option>Principale</option>
<option>Secondaria</option>
</select></td>
<td><input type=submit value=Cerca></td>
</tr>
</table>
</form>
<?
//Includo la pagina con i risultati
include("result.php");
?>
dove c'è il form di selezione dei campi di ricerca e il tasto per l'invio della ricerca, posizionati su una riga, e viene inclusa la pagina dei risultati, che è la seguente:
Codice PHP:
<?
include("includes/layout.php");
include("includes/config.inc.php");
//connessione al db
[...]
//recupero le variabili dal form di ricerca
$mese = $_POST['mese'];
$anno = $_POST['anno'];
$auto = $_POST['auto'];
//effettua la query al database per la ricerca, strutturandola in base alle posisibli scelte del form
if ($auto == "Tutte")
{
if ($mese == 0)
{
$query = "SELECT data_km, km, auto, motivo
FROM work_kmetri
WHERE year(data_km) LIKE $anno";
}else{
$query = "SELECT data_km, km, auto, motivo
FROM work_kmetri
WHERE month(data_km) LIKE $mese AND year(data_km) LIKE $anno";
}
}else{
if ($mese == 0)
{
$query = "SELECT data_km, km, auto, motivo
FROM work_kmetri
WHERE year(data_km) LIKE $anno AND auto LIKE '$auto'";
}else{
$query = "SELECT data_km, km, auto, motivo
FROM work_kmetri
WHERE month(data_km) LIKE $mese AND year(data_km) LIKE $anno AND auto LIKE '$auto'";
}
}
$result = mysql_query($query, $db);
//visualizzazione numero risultati
if (mysql_affected_rows() =="0")
{
echo "[b]
<h3><font color=\"#000066\"><center>la ricerca non ha prodotto alcun risultato</center></font></h3>[b]";
}else{
echo "[b]
<font color=\"#000066\"><center>la ricerca ha prodotto ", mysql_affected_rows()." risultati</center></font>[/b]";
}
//tabella con i risultati della query
echo "<table class=\"modulo\" width=\"90%\" border=\"1\" align=\"center\" cellpadding=\"0\" cellspacing=\"0\">
<tr class=\"titolo\">
<td>Data</td>
<td>Auto</td>
<td>Motivo</td>
<td>Chilometri[/b]
</tr>";
while ($row = mysql_fetch_array($result))
{
echo "<tr>
<td class=\"nome\">$row[data_km]" . "</td>
<td class=\"altro\">$row[auto]" . "</td>
<td class=\"altro\">",stripslashes($row[motivo]), "</td>
<td class=\"altro\">$row[km]" . "</td>
</tr>";
}
echo "
</table>";
Scritto il tutto forse in un modo un po' rude, ma funziona quasi completamente.
Infatti ho due problemi sul completamento del motore di ricerca, che consistono nel:
- quando apro per la prima volta la pagina del motore di ricerca, come faccio ad evitare l'inserimento della pagina dei risultati, che ovviamente contiene zero risultati??
- coem posso fare per ricordare al form di ricerca le scelte effettuate dopo ogni invio, invece che farlo ritoranre sui valori default?
Grazie pe rla pazienza e l'aiuto!!!!