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 -
G4uthier Messages postés 131 Date d'inscription Statut Membre Dernière intervention -
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"; }
A voir également:
- PHP Probleme concatenation
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Retour a la ligne php - Forum Webmastering
- Alert php - Forum PHP
- Retour a la ligne php ✓ - Forum PHP
4 réponses
Bonjour,
tu n'as pas une erreur de concaténation mais
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";
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">
............
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
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 ?
Et si tu faisait ton array ainsi (avec des tranches):
ensuite tu fais un switch case sur la valeur renvoyée
et tu en déduis tes opérateurs
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
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