- Home
- Categorie
- Coding e Sistemistica
- PHP
- Problema form ricerca
-
Problema form ricerca
Salve,
ho un problema con un form di ricerca. Il form mi permette di ottenere una lista dei clienti inseriti nel db in base a tre chiavi di ricerca: cognome, nome e provincia. Quando inserisco un nome o la provincia la ricerca non ha problemi, se invece inserisco un cognome allora ottengo questo errore:Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /home/housing/graficnet/ermess.it/restricted/ins_clienti_voucher.php on line **53
Questa è la linea 53: **while($clients=mysql_fetch_assoc($qclients)){
Come è possibile che non ci siano problemi con le altre chiavi di ricerca mentre invece non riesco a farla per cognome? Ho anche un altro file che fa la stessa identica ricerca tra i clienti aziende, la pagina è identica solo che il db è diverso e ricerca per cliente, provincia e referente. Qui non da errori.
Comunque vi incollo il codice così ci capite di più.
Questo è il form di ricerca:
[php]
<form id="ricerca" name="cerca" method="POST" action="index.php?titolo=clienti_voucher"><br />
<table width="100%" border="0" align="center" cellpadding="5" cellspacing="5" class="ricerca">
<tr valign="middle">
<td align="left" >CERCA </td>
<td align="left" >Cognome
<input name="cognome" type="text" id="cognome" value="<?php echo $_POST['cerca'];?>"/></td>
<td align="left" >Nome
<input name="nome" type="text" id="nome" value="<?php echo $_POST['cerca'];?>"/></td>
<td align="left" >Prov
<input name="prov" type="text" id="prov" value="<?php echo $_POST['cerca'];?>" size="5"/></td>
<td align="left" ><input type="submit" name="inviaRicerca" id="inviaRicerca" value="Cerca" /></td>
</tr></table>
</form>
[/php]Questa è la query che estrae i risultati:[php]
<?PHP
$query="SELECT * FROM clienti_voucher WHERE cognome!='' ";if($_POST['cognome']!=''){$query.=" AND (cognome LIKE '%".$_POST['cognome']."%'";}
if($_POST['nome']!=''){$query.=" AND nome LIKE '%".$_POST['nome']."%'";}
if($_POST['prov']!=''){$query.=" AND (prov LIKE '%".$_POST['prov']."%' OR prov2 LIKE '%".$_POST['prov']."%')";}
$query.="ORDER BY cognome ASC";$qclients=mysql_query($query);
$i=0;
while($clients=mysql_fetch_assoc($qclients)){$i=$i+1;
?>
<tr onmouseover="this.className='OverSelected'; "
onmouseout="this.className='OverFirst';" >
<td ><?php echo $i;?></td>
<td align="center"><?php echo $clients['cognome'];?></td>
<td align="center"><?php echo $clients['nome'];?></td>
<td align="center"><?php echo $clients['tel'];?></td>
<td align="center"><?php echo $clients['email'];?></td>
<td align="center"><?php echo $clients['prov'];?></td>
<td align="center" >
[/php]C'è dell'altro codice dopo che non interessa.Qualcuno sa dirmi se c'è qualche errore??
-
problema risolto da solo...era una stupidissima parentesi spuntata da non so dove nella condizione della query!
Maledette parentesi!