PHP Probleme concatenation

Résolu/Fermé
G4uthier Messages postés 131 Date d'inscription dimanche 2 décembre 2007 Statut Membre Dernière intervention 23 juillet 2009 - 27 avril 2008 à 15:21
G4uthier Messages postés 131 Date d'inscription dimanche 2 décembre 2007 Statut Membre Dernière intervention 23 juillet 2009 - 28 avril 2008 à 11:50
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

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 dimanche 2 décembre 2007 Statut Membre Dernière intervention 23 juillet 2009 7
27 avril 2008 à 16:04
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 dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
27 avril 2008 à 16:02
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 dimanche 2 décembre 2007 Statut Membre Dernière intervention 23 juillet 2009 7
27 avril 2008 à 16:16
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 dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
27 avril 2008 à 19:58
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 dimanche 2 décembre 2007 Statut Membre Dernière intervention 23 juillet 2009 7
27 avril 2008 à 21:17
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 dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
28 avril 2008 à 10:01
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 dimanche 2 décembre 2007 Statut Membre Dernière intervention 23 juillet 2009 7 > Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017
28 avril 2008 à 11:50
je te remercie beaucoup alain comme ceci ca fonctionne :)
0