Come impostare campi non obbligatori php

Sebastian84

Nuovo Utente
2 Dic 2009
2
0
0
Ciao a tutti,

non una grandissima esperienza nel php ma sto cercando di creare un programma per il sito della mia agenzia immobiliare in modo che l'utente possa selezionare i campi che gli interessano e trovare quindi gli immobili corrispondente al profilo ricercato.

Il programma l'ho costruito e funziona. La mia domanda è questa: come faccio a dire al programma che i campi non sono obbligatori? Ecco il codice del form:

<form method="post" action="search.php">
Tipologia: <select name="Tipologia">
<option selected="selected" value="">-- Qualsiasi --</option>
<option>Appartamento</option>
<option>Semi indipendente</option>
</select><br />
Zona:
<select name="Zona">
<option selected="selected" value="">-- Qualsiasi --</option>
<option>Cinquale</option>
<option>Vittoria Apuana</option>
</select><br />
&nbsp;<input name="Submit1" type="submit" value="Ricerca immobili" />&nbsp;&nbsp;
<input name="Reset1" type="reset" value="Cancella tutto" /></form>

E questo è il codice del programma search.php

<?php

$db_username = 'XxX';
$db_password = 'XxX';
$db_host = 'XxX;

$link = @mysql_connect("$db_host", "$db_username", "$db_password") or die ("Errore di connessione: " . mysql_error());
$dbw = mysql_select_db("agenziac73893") or die ("Errore di selezione database: " . mysql_error());

$tipologia = $_POST['Tipologia'];
$zona = $_POST['Zona'];

$strsql = mysql_query("
SELECT rif, descrizione FROM dbimmobili WHERE
tipologia='$tipologia'
AND zona='$zona'
");

echo "<p align = 'left'><font face='Arial' size='3'>Immobili trovati:<br>---------</p></font>";

while ($riga = mysql_fetch_row($strsql)){
echo "<font face='Arial' size='2' color='#0000FF'><b>$riga[0]</font></b><br>
$riga[1]<br>
<font face='Arial' size='3'>---------</font><br>";
}

mysql_close($link);

?>

C'è la possibilità di dire al programma che se in un campo del form, ad esempio "tipologia", viene lasciato il valore "qualsiasi" allora quel campo non deve essere preso in considerazione dalla ricerca??

Grazie mille in anticipo!
 
Non credo ci siano automatismi in tal senso. Nel codice PHP dovresti mettere dei controlli per ti permettano di utilizzare la query corretta.
 
ciao
io farei così in modo che se l'utente seleziona o non seleziona qualcosa


PHP:
//eccetera....quello sopra.........
$tipologia = $_POST['Tipologia'];
$zona = $_POST['Zona'];
//fare in modo che se non seleziona o una cosa o tutto
if($tipologia =="" && $zona==""){//tipo e zona vuoti
	$dove="";//tutto gli immobili
}elseif($tipologia !="" && $zona==""){
	$dove=" WHERE tipologia='".$tipologia."'";//di tutte le zone solo una tipologia
}elseif($tipologia =="" && $zona!=""){
	$dove=" WHERE zona='".$zona."'";//tute le tipologie di una zona
}elseif($tipologia !="" && $zona!=""){
	$dove=" WHERE tipologia='".$tipologia."' AND zona='".$zona."'";//una tipologia di una zona
}

$strsql = mysql_query("SELECT rif, descrizione FROM dbimmobili ".$dove);

//eccetera.........quello sotto..................
 
Ultima modifica:
Però non prendi in considerazione più di una scelta. Sarebbe una cosa abbastanza complessa. Ci lavorerei io ma la scuola mi ha chiesto un software di autenticazione e praticamente lo sto riscrivendo da capo...
 
Ciao alessandro, ti ringrazio ma non mi permetterei mai di chiederti di scrivermi tutto il codice... però penso che tu possa rispondere ad una domanda:

mi hanno suggerito di impostare una funzione del genere:

$var1 = (empty($_POST['nomecampo'])) ? FORMULA() : $_POST['nomecampo'];

dove al posto di Formula ci va messo qualcosa... ma non ho idea di che cosa!!! Quando hai due secondi mi puoi dare un'occhiata? Grazie in anticipo!
 
ciao
Però non prendi in considerazione più di una scelta
le scelte erano due è evidente che la cosa si complica se diventano di più

mi hanno suggerito di impostare una funzione del genere
secondo me dentr la funzione formula() devi mettere uno script come ti ho scritto in cui return i vari tipi di where
il suggerimento che ti hanno dato è come se ti avvessero riposto: "per fare quello che vuoi tu devi fare uno script"

p.s.
per alex "biddore un vabore di chiedo, son un bovero negro... uno script di chiedo"
 

Discussioni simili