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";
			}
		            
            
        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