Salve a tutti.
Avrei un problema con un piccolo motore di ricerca interno che sto tentando di creare per un sito. Lavoro con DB MySQL e per aiutarmi uso MySQL Workbench.
Sostanzialmente ho un problema con una query di ricerca (ho già verificato che legge perfettamente le tabelle e il db facendo stampare a video ogni riga) che vorrei fosse diversa in base ad un form 'menu' presente nella pagina precedente.
codice:
<form action="prova.php" method="post">
<fieldset>
<legend align="center">Ricerca Database</legend>
<table width="321" border="0">
<tr>
<td><select name="cerca" value="campo di ricerca">
<option value="all">Tutto</option>
<option value="rag">Ragione Sociale</option>
<option value="rap">Rappresentante</option>
<option value="iva">Partita IVA</option>
</select></td>
<td><input type="text" name="ogg" id="ogg" /></td>
<td>
<input name="cerca2" type="submit" value="Cerca" />
</td>
</tr>
</table>
</fieldset>
</form>
Nella pagina .php successiva viene rimandato il contenuto del form comprensivo di scelta dal menu e la parola ricercata che rimando in questo modo:
Codice PHP:
<?php
$cerca = $_POST['cerca'];
$ogg = $_POST['ogg'];
?>
Dopodiché faccio apro la connessione con il DB (verificandola) e poi mi trovo davanti al cuore del problema perché non sono sicuro che possa funzionare. Sostanzialmente volevo fare un caso "Switch": in base al caso delle opzioni di ricerca c'è una query leggermente diversa:
Codice PHP:
<?php
$cerca = $_POST['cerca'];
$ogg = $_POST['ogg'];
$connessione=mysql_connect("localhost","root","root") or die ("non trovo la connessione");
mysql_select_db("database1prova",$connessione) or die ("non trovo il db");
switch ($cerca)
{
case "all";
{
$sql="SELECT * FROM clienti"."WHERE * = '{$ogg}'";
break;
}
case "nom";
{
$sql="SELECT * FROM clienti"."WHERE nome = '{$ogg}'";
break;
}
case "rap";
{
$sql="SELECT * FROM clienti"."WHERE ref = '{$ogg}'";
break;
}
case "tel";
{
$sql="SELECT * FROM clienti"."WHERE tel = '{$ogg}'";
break;
}
}
$ris=mysql_query($sql) or die ("Query Fallita");
while($riga=mysql_fetch_array($ris))
{
echo "Nome: ".$riga["nome"]."
";
echo "Referente: ".$riga["ref"]."
";
echo "Tel: ".$riga["tel"]."
";
echo "Indirizzo: ".$riga["ind"]."
";
}
mysql_close($connessione);
?>
Ovviamente ciò che restituisce e come si presenta è provvisorio dato che questa è solo una prova per vedere se funziona (infatti manca l'ordinamento dei dati e la selezione del risultato desiderato andando su un'altra pagina con TUTTE le informazioni del DB di quella riga). Al momento l'unica cosa che mi viene restituita è la snervante scritta di controllo "Query Fallita".
Sono 4 anni che non tocco ne HTML, ne PHP, ne SQL ed è il mio primo tentativo in questo senso. Qualcuno ha qualche idea su dove sbaglio? Ringrazio anticipatamente.
Kahen