PHP Probleme concatenation
Résolu
G4uthier
Messages postés
131
Statut
Membre
-
G4uthier Messages postés 131 Statut Membre -
G4uthier Messages postés 131 Statut Membre -
Bonjour,
Voila j'ai un tableau :
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.
Voila j'ai un tableau :
$Price=Array("£400 - £499"=>"price >=400 && price <=499 ","£500 - £599"=>"price >=500 && price <=599"
,"£600 - £699"=>"price >=600 && price <=699","£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";
}
Configuration: Windows XP Firefox 2.0.0.14
4 réponses
-
-
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
-
-
Bonjour,
tu n'as pas une erreur de concaténation mais
foreach($Price as $key =>$value){ if($value==$priceSave){ -
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";-
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";
-
-
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-
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("£400 - £499"=>"price '>='400 && price '<='499 ","£500 - £599"=>"price '>='500 && price '<='599" ,"£600 - £699"=>"price '>='600 && price '<='699","£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("£400 - £499"=>"T1","£500 - £599"=>"T2" ,"£600 - £699"=>"T3","£700+"=>"T4");
ensuite tu fais un switch case sur la valeur renvoyée
et tu en déduis tes opérateurs
-