PHP Probleme concatenation

Résolu
G4uthier Messages postés 131 Date d'inscription   Statut Membre Dernière intervention   -  
G4uthier Messages postés 131 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Voila j'ai un tableau :

$Price=Array("&pound;400 - &pound;499"=>"price >=400 && price <=499 ","&pound;500 - &pound;599"=>"price >=500 && price <=599"
 ,"&pound;600 - &pound;699"=>"price >=600 && price <=699","&pound;700+"=>"price >700");


qui va me servir lors d'une requete. Mais pour l'instant j'ai besoin d'afficher les valeurs (£400 - £499, par exemple) dans une liste déroulante mais ca ne fonctionne pas correctement.

$OptionPrice='';
		foreach($Price as $key =>$value){
			if($Price==$priceSave){
				$selected=' selected="selected"';
			}else{
				$selected='';
				}
				$OptionPrice .= "<option ".$selected." value=".$value.">".$key."</option>\n";
				//echo "la clé est $key :          $value.\n";
			}
		
A voir également:

4 réponses

Marion
 
Bonjour ,

Peux tu nous donner le message d'erreur que tu as lors de l'execution?
0
G4uthier Messages postés 131 Date d'inscription   Statut Membre Dernière intervention   7
 
pas de message d'erreur jai ca dans ma liste:
pricela clé est £400 - £499 : price >=400 && price <=499 . la clé est £500 - £599 : price >=500 && price <=599. la clé est £600 - £699 : price >=600 && price <=699. la clé est £700+ : price >700. (c'est le echo que j ai mis en commentaire)

https://www.imagup.com
0
Alain_42 Messages postés 5361 Date d'inscription   Statut Membre Dernière intervention   894
 
Bonjour,

tu n'as pas une erreur de concaténation mais


foreach($Price as $key =>$value){
	if($value==$priceSave){
0
G4uthier Messages postés 131 Date d'inscription   Statut Membre Dernière intervention   7
 
c'est pas la valeur que je veux prendre en fait dans mon priceSave.
il sert juste à retenir le prix selectionné par l'utilistaeur dans sa liste déroulante.
La valeur de ma liste déroulante va servir dans ma requete:
$query = "SELECT * FROM $table1 WHERE "."$_POST[mavaleurdelistederoulant]"." ORDER BY id ASC LIMIT $resultLimit, 3";
0
Alain_42 Messages postés 5361 Date d'inscription   Statut Membre Dernière intervention   894
 
Oui d'accord mais quand tu mets:

foreach($Price as $key =>$value){
if($Price==$priceSave){


$Price est un array donc tu ne peux pas le comparer par ton if à une valeur

il faut bien que la boucle du foreach compare chaque valeur de l'array (donc $value) à $priceSave

et pour ta requette:

si ta liste est
<select name="selection">
............

$query = "SELECT * FROM $table1 WHERE ton_champ_prix='".$_POST['selection']."' ORDER BY id ASC LIMIT $resultLimit, 3";
0
G4uthier Messages postés 131 Date d'inscription   Statut Membre Dernière intervention   7
 
ok mais j'ai toujours mon probleme avec ma liste déroulante j'ai mis le liens dans le poste d'avant.
Je voudrais une liste deroulant dans laquelle figure: £400-£499 ;£500-599;£600-699;>£700
0
Alain_42 Messages postés 5361 Date d'inscription   Statut Membre Dernière intervention   894
 
Salut,

Tu ne peux pas mettre dans les valeurs de ton array des signes qui sont interprétés par le php comme < =

En faisant ainsi ça marche pour ta liste mais ensuite je ne vois pas comme tu vas exploiter la valeur renvoyée ?

$Price=array("&pound;400 - &pound;499"=>"price '>='400 && price '<='499 ","&pound;500 - &pound;599"=>"price '>='500 && price '<='599"
 ,"&pound;600 - &pound;699"=>"price '>='600 && price '<='699","&pound;700+"=>"price '>'700");
 $priceSave="";
 echo "<select>";
 $OptionPrice=''; // c'est bidon juste pour que chez moi ça marche
		foreach($Price as $key =>$value){
			if($value==$priceSave){
				$selected=' selected="selected"';
			}else{
				$selected='';
				}
				$OptionPrice .= "<option ".$selected." value=".$value.">".$key."</option>\n";
				//echo "la clé est $key :          $value.\n";
			echo $OptionPrice;
			}
			
echo "</select>";



Et si tu faisait ton array ainsi (avec des tranches):


$Price=array("&pound;400 - &pound;499"=>"T1","&pound;500 - &pound;599"=>"T2"
 ,"&pound;600 - &pound;699"=>"T3","&pound;700+"=>"T4");



ensuite tu fais un switch case sur la valeur renvoyée

et tu en déduis tes opérateurs
0
G4uthier Messages postés 131 Date d'inscription   Statut Membre Dernière intervention   7 > Alain_42 Messages postés 5361 Date d'inscription   Statut Membre Dernière intervention  
 
je te remercie beaucoup alain comme ceci ca fonctionne :)
0