Ho una query che non riesco a far funzionare correttamente.
Il risultato che voglio ottenere è che un utente non immetta nulla e ottenga tutti i record.
Ciò non avviene perché vengono esclusi quelli “NULL”.
Pensavo fosse banale ma non ci riesco! Sing!
Partiamo del form.
Questo ha solo tre campi.
<form action="editaoggetto2.php" method="post" enctype="multipart/form-data" name="formricerca" id="formricerca">
<label align="center"><div align="center">
<span class="oggettotesto">
<table align="center" style="text-align: left; width: 600px;" border="0"
cellpadding="2" cellspacing="2">
<tr>
<td colspan="1" rowspan="1" style="vertical-align: top;"><p align="left"><span class="oggettotestomedio"><strong>Ricerca</strong><br></p>
Nome Oggetto
<input name="nome" type="text" id="nome" size="50" />
</div>
</label>
<p align="left">
<label>Formato Oggetto
<select name="formato" id="formato">
<option value="%" selected>Tutti</option>
<option value="OGGETTO1">OGGETTO1</option>
<option value="OGGETTO2">OGGETTO2</option>
</select>
</label>
</p>
<p align="left">
<label>Descrizione Oggetto
<input name="descrizione" type="text" id="descrizione" size="50" />
</label>
</p></span>
<p align="left">
<label></label>
<label>
<input type="submit" name="Submit" value=" Ricerca " />
</label>
</td>
<tr>
</tr>
</table>
</form>
La query successiva è questa:
…..
if (isset($_POST['nome'])) {
$varnome_ricerca = (get_magic_quotes_gpc()) ? $_POST['nome'] : addslashes($_POST['nome']);
echo "<br> ----$varnome_ricerca----<br>";
}else {$varnome_ricerca = "%";}
if (isset($_POST['formato'])) {
$varformato_ricerca = (get_magic_quotes_gpc()) ? $_POST['formato'] : addslashes($_POST['formato']);
echo "<br> ----$varformato_ricerca----<br>";
}else {$varformato_ricerca= "%";}
$vardescrizione_ricerca = "%";
if (isset($_POST['descrizione'])) {
$vardescrizione_ricerca = (get_magic_quotes_gpc()) ? $_POST['descrizione'] : addslashes($_POST['descrizione']);
echo "<br> ----$vardescrizione_ricerca----<br>";
}
…..
$query_ricerca = "SELECT oggetto.id, oggetto.nome, oggetto.formato, oggetto.descrizione, oggetto.altrooggetto, user.nick, user.colore, user.dimensioni, user.email, user.altrouser FROM oggetto INNER JOIN user ON oggetto.id_user=user.id WHERE oggetto.nome LIKE '%$varnome_ricerca%' AND oggetto.formato LIKE '%$varformato_ricerca%' AND oggetto.descrizione LIKE '%$vardescrizione_ricerca%' AND oggetto.id_user LIKE '%$risultatoid%' ORDER BY oggetto.nome";
Ho dovuto togliere prima di SELECT, il “sprintf “. Mi dava degli errori. (parametri insufficienti)
Da cosa può dipendere? Come devo impostare la query?
Mille grazie per l’aiuto.
Il risultato che voglio ottenere è che un utente non immetta nulla e ottenga tutti i record.
Ciò non avviene perché vengono esclusi quelli “NULL”.
Pensavo fosse banale ma non ci riesco! Sing!
Partiamo del form.
Questo ha solo tre campi.
<form action="editaoggetto2.php" method="post" enctype="multipart/form-data" name="formricerca" id="formricerca">
<label align="center"><div align="center">
<span class="oggettotesto">
<table align="center" style="text-align: left; width: 600px;" border="0"
cellpadding="2" cellspacing="2">
<tr>
<td colspan="1" rowspan="1" style="vertical-align: top;"><p align="left"><span class="oggettotestomedio"><strong>Ricerca</strong><br></p>
Nome Oggetto
<input name="nome" type="text" id="nome" size="50" />
</div>
</label>
<p align="left">
<label>Formato Oggetto
<select name="formato" id="formato">
<option value="%" selected>Tutti</option>
<option value="OGGETTO1">OGGETTO1</option>
<option value="OGGETTO2">OGGETTO2</option>
</select>
</label>
</p>
<p align="left">
<label>Descrizione Oggetto
<input name="descrizione" type="text" id="descrizione" size="50" />
</label>
</p></span>
<p align="left">
<label></label>
<label>
<input type="submit" name="Submit" value=" Ricerca " />
</label>
</td>
<tr>
</tr>
</table>
</form>
La query successiva è questa:
…..
if (isset($_POST['nome'])) {
$varnome_ricerca = (get_magic_quotes_gpc()) ? $_POST['nome'] : addslashes($_POST['nome']);
echo "<br> ----$varnome_ricerca----<br>";
}else {$varnome_ricerca = "%";}
if (isset($_POST['formato'])) {
$varformato_ricerca = (get_magic_quotes_gpc()) ? $_POST['formato'] : addslashes($_POST['formato']);
echo "<br> ----$varformato_ricerca----<br>";
}else {$varformato_ricerca= "%";}
$vardescrizione_ricerca = "%";
if (isset($_POST['descrizione'])) {
$vardescrizione_ricerca = (get_magic_quotes_gpc()) ? $_POST['descrizione'] : addslashes($_POST['descrizione']);
echo "<br> ----$vardescrizione_ricerca----<br>";
}
…..
$query_ricerca = "SELECT oggetto.id, oggetto.nome, oggetto.formato, oggetto.descrizione, oggetto.altrooggetto, user.nick, user.colore, user.dimensioni, user.email, user.altrouser FROM oggetto INNER JOIN user ON oggetto.id_user=user.id WHERE oggetto.nome LIKE '%$varnome_ricerca%' AND oggetto.formato LIKE '%$varformato_ricerca%' AND oggetto.descrizione LIKE '%$vardescrizione_ricerca%' AND oggetto.id_user LIKE '%$risultatoid%' ORDER BY oggetto.nome";
Ho dovuto togliere prima di SELECT, il “sprintf “. Mi dava degli errori. (parametri insufficienti)
Da cosa può dipendere? Come devo impostare la query?
Mille grazie per l’aiuto.