query form

  • Creatore Discussione Creatore Discussione marzar
  • Data di inizio Data di inizio

marzar

Utente Attivo
8 Ott 2010
53
0
6
salve ho bisogno di sapere come si fa una cosa
Vi spiego la mia situzione
ho un db dove c'è una tabella chiamata agenzie dovrei riuscire a fare una query dove io dando la provincia mi seleziona le agenzie di quell povincia ma ciò deve essere relizzato tramite una form dove io seleziono tramite casella combinata una provincia e selezionando ES (VI)mi mostra tutte le agenzie di vicenza
praticamente devo interrogare un database e visualizzare il risultato
Come facciio?
 
ciao
dal form prelevi l'invio con il $_POST
poi
prima della SELECT di interrogazione inserisci e, previ controlli al post,
PHP:
<?php
//.....
$we="";
if(isset($_POST['provincia'])){
	$we=" WHERE provincia='".$_POST['provincia']."'";
}
// e poi nella select
$query="SELECT * FROM tabella $w";
//ecc......
?>
 
cosi?

<html>
<form method="POST" action="Combo.php">
<select name="COMBO">
<option value="pd">pd</option>
<option value="vi">vi</option>
<option value="ve">ve</option>
<option value="to">to</option>
</select>
<input type="submit" value="invia">
</form>
</html>

<?php
$DBhost = "localhost";
$DBuser = "root";
$DBpass = "210281";
$DBName = "agenzie";
$table = "anagrafica";
mysql_connect($DBhost,$DBuser,$DBpass) or die("Impossibile collegarsi al server");
@mysql_select_db("$DBName") or die("Impossibile connettersi al database $DBName");
$sqlquery = "SELECT * FROM $table WHERE Provincia = 'pd'";
$result = mysql_query($sqlquery);
$number = mysql_numrows($result);
$i = 0;
if ($number < 1) {
print " Non ci sono risultati nella tua ricerca";
}
else {
while ($number > $i) {
$theRagione_sociale = mysql_result($result,$i,"Ragione_sociale");
$theIndirizzo = mysql_result($result,$i,"indirizzo");
$theCap = mysql_result($result,$i,"Cap");
$theCitta = mysql_result($result,$i,"Citta");
$theProvincia = mysql_result($result,$i,"Provincia");
$theTel = mysql_result($result,$i,"Tel");
print "Ragione_sociale: $theRagione_sociale Indirizzo: $theIndirizzo Cap: $theCap Citta: $theCitta Provincia: $theProvincia Tel: $theTel <br />";
$i++;
}
}
?>
 
ciao,
no, non hai messo la condizione,
inoltre aggiungerei alla select
HTML:
<html>
<form method="POST" action="Combo.php">
<select name="COMBO">
<option value="">-tutte-</option><!-- aggiungerei-->
<option value="pd">pd</option>
<option value="vi">vi</option>
<option value="ve">ve</option>
<option value="to">to</option>
</select>
<input type="submit" value="invia">
</form>
</html>
poi nella parte php devi aggiungere la condizione che ti arriva dal form
PHP:
<?php
//...
$we=""; 
if(isset($_POST['COMBO']) && $_POST['COMBO'] !=""){ 
    $we=" WHERE provincia='".$_POST['COMBO']."'"; 
} 
$sqlquery = "SELECT * FROM $table $we";
$result = mysql_query($sqlquery);
$number = mysql_numrows($result);
//....
?>
se non dai la selezione o se selezioni -tutte- la $sqlquery diventa
SELECT * FROM anagrafica e quindi hai tutti i risultati
se hai dato una selezione (es. pd) la $sqlquery diventa
SELECT * FROM anagrafica WHERE provincia='pd' e quindi ti trova solo quelli di padova
se appena dopo $sqlquery = "SELECT * FROM $table $we";
metti (poi lo togli)
var_dump($sqlquery);
vedi se la query viene scritta giusta in funzione della selezione
 
va bene?

<html>
<form method="POST" action="Combo.php">
<select name="COMBO">
<option value="">-tutte-</option>
<option value="pd">pd</option>
<option value="vi">vi</option>
<option value="ve">ve</option>
<option value="to">to</option>
</select>
<input type="submit" value="invia">
</form>
</html>

Parte---php---

<?php
$DBhost = "localhost";
$DBuser = "root";
$DBpass = "210281";
$DBName = "agenzie";
$table = "anagrafica";
mysql_connect($DBhost,$DBuser,$DBpass) or die("Impossibile collegarsi al server");
@mysql_select_db("$DBName") or die("Impossibile connettersi al database $DBName");
$sqlquery = "SELECT * FROM $table WHERE Provincia = 'pd'";--tolgo questa e aggiungo---$we="";
if(isset($_POST['COMBO']) && $_POST['COMBO'] !=""){
$we=" WHERE provincia='".$_POST['COMBO']."'";
}
$sqlquery = "SELECT * FROM $table $we";
$result = mysql_query($sqlquery);
$number = mysql_numrows($result);
$result = mysql_query($sqlquery);
$number = mysql_numrows($result);
$i = 0;
if ($number < 1) {
print " Non ci sono risultati nella tua ricerca";
}
else {
while ($number > $i) {
$theRagione_sociale = mysql_result($result,$i,"Ragione_sociale");
$theIndirizzo = mysql_result($result,$i,"indirizzo");
$theCap = mysql_result($result,$i,"Cap");
$theCitta = mysql_result($result,$i,"Citta");
$theProvincia = mysql_result($result,$i,"Provincia");
$theTel = mysql_result($result,$i,"Tel");
print "Ragione_sociale: $theRagione_sociale Indirizzo: $theIndirizzo Cap: $theCap Citta: $theCitta Provincia: $theProvincia Tel: $theTel <br />";
$i++;
}
}
?>
 
questo va bene???

---html---

<html>
<form method="POST" action="Combo.php">
<select name="COMBO">
<option value="">-tutte-</option>
<option value="pd">pd</option>
<option value="vi">vi</option>
<option value="ve">ve</option>
<option value="to">to</option>
</select>
<input type="submit" value="invia">
</form>
</html>

---php---
<?php
$DBhost = "localhost";
$DBuser = "root";
$DBpass = "210281";
$DBName = "agenzie";
$table = "anagrafica";
mysql_connect($DBhost,$DBuser,$DBpass) or die("Impossibile collegarsi al server");
@mysql_select_db("$DBName") or die("Impossibile connettersi al database $DBName");
$we="";
if(isset($_POST['COMBO']) && $_POST['COMBO'] !=""){
$we=" WHERE provincia='".$_POST['COMBO']."'";
}
$sqlquery = "SELECT * FROM $table $we";
$result = mysql_query($sqlquery);
$number = mysql_numrows($result);
$i = 0;
if ($number < 1) {
print " Non ci sono risultati nella tua ricerca";
}
else {
while ($number > $i) {
$theRagione_sociale = mysql_result($result,$i,"Ragione_sociale");
$theIndirizzo = mysql_result($result,$i,"indirizzo");
$theCap = mysql_result($result,$i,"Cap");
$theCitta = mysql_result($result,$i,"Citta");
$theProvincia = mysql_result($result,$i,"Provincia");
$theTel = mysql_result($result,$i,"Tel");
print "Ragione_sociale: $theRagione_sociale Indirizzo: $theIndirizzo Cap: $theCap Citta: $theCitta Provincia: $theProvincia Tel: $theTel <br />";
$i++;
}
}
?>
 
ciao
così ad occhio e croce sembrerebbe di si, però come ti ho detto scherzando prima devi provarlo. è l'unico modo per vedere se va bene, non sto a farmi il db+tabelle per provarlo e un'imperfezione è sempre in agguato
 
funziona

fuziona tutto grazie l'unica cosa che vorrei chiedere è questo
dove ho messo la possibilità di vederle tutte vorrei invece mettere la parola seleziona ma quando seleziono "seleziona" nn dovrebbe dare risultati (pagina bianca)
 

Discussioni simili