PB variable POST dans SELECT

mvcrew
Invité n'ayant pas de compte PHPfrance

05 déc. 2014, 16:13

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

mvcrew
Invité n'ayant pas de compte PHPfrance

05 déc. 2014, 16:24

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."'

Nestecha
Invité n'ayant pas de compte PHPfrance

05 déc. 2014, 20:51

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.

mvcrew
Invité n'ayant pas de compte PHPfrance

08 déc. 2014, 11:00

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 :)

Mammouth du PHP | 2278 Messages

08 déc. 2014, 11:33

Bjr,
Là où tu as:
$req= " WHERE `commune` = ' ".$commune."';
ajoute
print "<br>$req";
Vanitas vanitatum et omnia vanitas
Mes derniers livres :
Sauvez les Mots chez BoD,
Tous les chemins mènent à ROM chez BoD

mvcrew
Invité n'ayant pas de compte PHPfrance

08 déc. 2014, 12:00

J'obtiens "Resource id #4"

mvcrew
Invité n'ayant pas de compte PHPfrance

08 déc. 2014, 12:15

Avec cette syntaxe ".$commune." je n'obtiens rien ... :|