- Home
- Categorie
- Coding e Sistemistica
- Coding
- Ricezione dati da form
-
Ricezione dati da form
Ciao a tutti...
Sto cambiando le pagine di un vecchio sito realizzato in ASP con pagine in PHP.
Sto avendo un pò di problemi solo con una cosa: il modulo di ricerca.
Mi spiego meglio...in ASP ho realizzato questo tipo di variabili:categoria=request("categoria")
if categoria <> "" then varQuerycategoria = " AND categoria = '"&categoria&"' "
tipologia=Request("tipologia")
if tipologia <> "" then varQuerytipologia = " AND tipologia = '"&tipologia&"' "
e così via...Con questo tipo di query:
sql="select * from immobili "
sql= sql & " where contratto='"&ven&"' "
sql= sql & " "&varQuerycategoria&" "
sql= sql & " "&varQuerytipologia&" "
sql= sql & " "&varQueryzona&" "
sql= sql & " "&varQuerymin&" "&varQuerymax&" "&varQueryMinMax&" "
sql= sql & " order by prezzo asc "Come trasformo il tutto in PHP?
sto provando in questa maniera ma mi trova solo il primo record e cioè $contratto e poi niente più:$categoria = isset($_GET['categoria']) ? $_GET['categoria'] : '';
$sql = "select * from immobili where 1=1";
if($categoria){
$sql .= " AND categoria = '".mysqli_real_escape_string($categoria)."'";
}
if($tipologia){
$sql .= " AND tipologia = '".mysqli_real_escape_string($tipologia)."'";
}
$sql .= " ORDER BY prezzo asc";Sto impazzendo...
Grazie in anticipo per l'aiuto...
-
Nessun suggerimento?
-
Ciao Poison81 e benvenuto nel Forum GT
Prova a modificarlo così:
$sql = "select * from immobili where 1=1"; if(isset($_GET['categoria'])){ $sql .= " AND categoria = '".mysqli_real_escape_string($_GET['categoria'])."'"; } if(isset($_GET['tipologia'])){ $sql .= " AND tipologia = '".mysqli_real_escape_string($_GET['tipologia'])."'"; } $sql .= " ORDER BY prezzo asc";
-
Ciao e grazie per avermi risposto...
Ho provato il tuo metodo così:
[PHP]$contratto = isset($_GET['contratto']) ? $_GET['contratto'] : '';
$categoria = isset($_GET['categoria']) ? $_GET['categoria'] : '';$tipolgia = isset($_GET['tipolgia']) ? $_GET['tipolgia'] : ''; $zona = isset($_GET['zona']) ? $_GET['zona'] : '';
$min = isset($_GET['min']) ? $_GET['min'] : '';
$max = isset($_GET['max']) ? $_GET['max'] : '';$sql = "select * from immobili where contratto='$contratto'";
if(isset($_GET['categoria'])){
$sql .= " AND categoria = '".mysqli_real_escape_string($_GET['categoria'])."'";
}
if(isset($_GET['tipologia'])){
$sql .= " AND tipologia = '".mysqli_real_escape_string($_GET['tipologia'])."'";
}
$sql .= " ORDER BY prezzo asc";$rs = @mysql_query("$sql",$link) or die("Errore query database: " . mysql_error());
$nr = mysql_num_rows($rs);
while ($riga = mysql_fetch_array($rs)) {
[/PHP]
Ma non mi trova nulla lo stesso...
Dove sbaglio?
-
Fai un echo di $sql e vediamo cosa esce fuori.
-
Questa è la query:
select * from immobili where contratto='Affitto' AND categoria = '' AND tipologia = '' ORDER BY prezzo asc
-
Non stai ricevendo i dati di categoria e tipologia
l'url della pagina è dominio.ext/pagina.php?contratto=affitto&categoria=qualcosa&tipologia=qualcosaltro ????
Così sembrerebbe che non stai ricevendo i valori o, se li ricevi anche se nulli, modifica gli if così:
[php]if(isset($_GET['categoria']) && $_GET['categoria']!='')[/php]
-
Allora l'url sembra giusto perchè è questo:
pianetacasafoggia.altervista.org/ricercaimm.php?contratto=Vendita&categoria=Commerciale&tipologia=Tutte&zona=&min=0&max=0&Submit2=Cerca
però la query è sempre questa:
select * from immobili where contratto='Vendita' AND categoria = '' AND tipologia = '' ORDER BY prezzo asc
anche con gli if modificati come mi hai detto prima...
-
Fatti un echo dei vari $_GET e togli un attimo mysqli_real_escape_string