Salve, sono nuovo della programmazione php.
Ho scritto, aiutandomi a destra e sinistra, una pagina php che dovrebbe andare fare una query su un database.
Ecco il codice
Codice PHP:
<?php
$connessione = mysql_connect("localhost", "...", "...") or die(mysql_error());
mysql_select_db("...");
$tabella = addslashes($_POST["tabella"]);
$campo1 = addslashes($_POST["campo1"]);
$campo2 = addslashes($_POST["campo2"]);
$campo3 = addslashes($_POST["campo3"]);
$campo4 = addslashes($_POST["campo4"]);
$opzione1 = addslashes($_POST["opzione1"]);
$opzione2 = addslashes($_POST["opzione2"]);
$opzione3 = addslashes($_POST["opzione3"]);
$opzione4 = addslashes($_POST["opzione4"]);
$opzione5 = addslashes($_POST["opzione5"]);
$query=mysql_query("SELECT $campo1,$campo2,$campo3,$campo4 FROM $tabella WHERE $campo1 LIKE '%$opzione1%' OR $campo2 LIKE '%opzione2%' OR $campo3 LIKE '%opzione3%'OR $campo4 LIKE '%opzione4%'", $connessione);
$total = mysql_num_rows($query);
if($total == 0) {
echo 'Non è stato trovato niente';
} else {
while($r = mysql_fetch_array($query)){
print ($r["$campo1"]) . "<table>" . " ";
print ($r["$campo2"]). " ";
print ($r["$campo3"]). " ";
print ($r["$campo4"]) . " " ."</table>";
}
}
?>
<form method="POST">
Search: </p>
Tabella:<input type="text" name="tabella" id="tabella" />
Campo1:<input type="text" name="campo1" id="campo1" />
Campo2:<input type="text" name="campo2" id="campo2" />
Campo3:<input type="text" name="campo3" id="campo3" />
Campo4:<input type="text" name="campo4" id="campo4" />
Opzione1:<input type="text" name="opzione1" id="opzione1" />
Opzione2:<input type="text" name="opzione2 id="opzione2" />
Opzione3:<input type="text" name="opzione3" id="opzione3" />
Opzione4:<input type="text" name"opzione4" id="opzione4" />
<input type="submit" name="query" id="query" value="Search" /><
</form>
Ora se si inseriscono i criteri in tutti e quattro i campi con le relative opzioni di ricerca il tutto funziona egregiamente, ma se voglio fare una ricerca utilizzando, ad esempio, solo il campo 1 con la relativa opzione1 la query mi dice "Non è stato trovato niente". Da quanto ne ho capito succede perchè lo script posta tutti i campi anche se questi sono vuoti e dunque crea un errore nella sintassi di mysql, allora come faccio ad eliminare questo problema e ad inviare i campi che sono effettivamente stati inseriti?
Inoltre nella riga dove è definita la variabile $total la funzione mysql_num_rows mi da questo warning
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in .../search.php on line 20
eppure la sintassi della funzione mi sembra corretta...
Grazie per l'aiuto...