PHP Probleme concatenation

Résolu
G4uthier Messages postés 131 Statut Membre -  
G4uthier Messages postés 131 Statut Membre -
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";
			}
		
Configuration: Windows XP
Firefox 2.0.0.14

4 réponses

  1. Marion
     
    Bonjour ,

    Peux tu nous donner le message d'erreur que tu as lors de l'execution?
    0
    1. G4uthier Messages postés 131 Statut Membre 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
  2. Alain_42 Messages postés 5413 Statut Membre 904
     
    Bonjour,

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

    
    foreach($Price as $key =>$value){
    	if($value==$priceSave){
    
    0
  3. G4uthier Messages postés 131 Statut Membre 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
    1. Alain_42 Messages postés 5413 Statut Membre 904
       
      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
  4. G4uthier Messages postés 131 Statut Membre 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
    1. Alain_42 Messages postés 5413 Statut Membre 904
       
      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
      1. G4uthier Messages postés 131 Statut Membre 7 > Alain_42 Messages postés 5413 Statut Membre
         
        je te remercie beaucoup alain comme ceci ca fonctionne :)
        0