Page 1 sur 1

PB variable POST dans SELECT

Posté : 05 déc. 2014, 16:13
par mvcrew
Bonjour,

Voila mon problème :
echo "<select ><option value='-1'>...</option>";
	
					$commune=$_POST['comm'];
					$req1= pg_query($base,"SELECT * FROM toto WHERE commune='91201'");
	
					while($rep1 = pg_fetch_array($req1)){
						echo "<option value='".$rep1["gid"]."'>".$rep1["titre"]."</option>";
					}
	
	echo "</select>";

La, aucun problème. Par contre lorsque je change cette ligne :
WHERE `name` = '91201'
par cette ligne :
WHERE `name` = '".$commune."'
Cela ne marche pas.

Je n'arrive pas à récupérer le code Insee avec $commune.

J'ai déjà un premier filtre avec un choix entre les communes, agglo, départements, etc ...

Merci d'avance à tous #-o

Re: PB variable POST dans SELECT

Posté : 05 déc. 2014, 16:24
par mvcrew
Dsl j'ai fait une erreur en reprenant le code ... :shock:

Ca sera mieux comme ça !!
WHERE commune = '91201'
par cette ligne :
WHERE commune = '".$commune."'

Re: PB variable POST dans SELECT

Posté : 05 déc. 2014, 20:51
par Nestecha
Erreur de syntaxe MySQL :

WHERE commune = '91201'
Ici tu dois remplacer le nombre par une variable directement, sans aucune concaténation PHP, puisque c'est du mysql, c'est un langage qui a sa propre syntaxe.
Donc :
WHERE commune = '$commune'

Je sais, ça fait bizarre.

Re: PB variable POST dans SELECT

Posté : 08 déc. 2014, 11:00
par mvcrew
Merci pour ta réponse Nestecha mais en fait c'est du PostGres donc il me semble que la syntaxe et correcte..
Je pense que c'est plutôt un problème de la fonction JS qui ne renvoie pas les données voulues.

J'ai un premier fichier ou je fais le tri entre les différents territoires via une liste déroulante, puis ensuite une autre liste déroulante où je choisis la commune...

1ere liste déroulante :

<?php
	header( 'content-type: text/html; charset=utf-8' );
	$val=$_POST["idTerr"];
	

	include("./../../../fonctions.connect_2.php");
	
	
	if($val=='com'){

		echo "<select style='font-size:18px;width:100%;' name='com' id='com' onchange='goliste()'' >
		<option value='-1'>...</option>";
		
		
		$req1= pg_query($base,"SELECT * FROM commune ");
					
		while($rep1 = pg_fetch_array($req1)){
			echo "<option value='".$rep1["insee"]."'>".$rep1["commune"]."</option>";
		}
		
	echo "	</SELECT>	";
	}
	
	if($val=='epci'){

		echo "<select style='font-size:18px;width:100%;' name='epc' id='epc' onchange='goliste()''>
		<option value='-1'>...</option>";
		
		
		$req2= pg_query($base,"SELECT * FROM epci");
					
		while($rep2 = pg_fetch_array($req2)){
			echo "<option value='".$rep2["code_epci"]."'>".$rep2["epci"]."</option>";
		}
		
	echo "	</SELECT>";
	}
	
?>	
qui doit renvoyer à la 2 eme liste :
<?php
$territoire=$_POST['idEpci'];

?>
<?php

if(isset($territoire)){

include("./../../../fonctions.connect_2.php");

	if($territoire=="epci"){

	echo "<select ><option value='-1'>...</option>";		
	
					$req1= pg_query($base,"SELECT * FROM toto ORDER BY gid");
		
					while($rep1 = pg_fetch_array($req1)){
						echo "<option value='".$rep1["gid"]."'>".$rep1["titre"]."</option>";
					}
	
	echo "</select>";
	
	}
	
	if($territoire=="com"){
	
	echo "<select ><option value='-1'>...</option>";
	
					$commune=$_POST['com'];
					$req1= pg_query($base,"SELECT * FROM toto WHERE commune='$commune'");
	
					while($rep1 = pg_fetch_array($req1)){
						echo "<option value='".$rep1["gid"]."'>".$rep1["titre"]."</option>";
					}
	
	echo "</select>";
	
	}
	
	}
	
?>	
Mais je n'arrive pas à récupérer ce satané code insee de mes communes pour filter dans une 3 eme liste ...

Merci d'avance pour votre aide :)

Re: PB variable POST dans SELECT

Posté : 08 déc. 2014, 11:33
par sirakawa
Bjr,
Là où tu as:
$req= " WHERE `commune` = ' ".$commune."';
ajoute
print "<br>$req";

Re: PB variable POST dans SELECT

Posté : 08 déc. 2014, 12:00
par mvcrew
J'obtiens "Resource id #4"

Re: PB variable POST dans SELECT

Posté : 08 déc. 2014, 12:15
par mvcrew
Avec cette syntaxe ".$commune." je n'obtiens rien ... :|