8719 sujets

Développement web côté serveur, CMS

Bonjour,

J'ai un problème .... Smiley decu
Je veux appliquer des filtres à mon site pour qu'il affiche les données suivant ce que l'utilisateur a sélectionné .... Pour les autres filtres pas de problèmes mais quand je veux utiliser le filtre "Release" qui contient des valeurs de ce type la:

5,1
5,11
5,12
6
6,1
6,2
7
7,1
8
9
9,1
10
10,1


Pour les valeurs entières ca marche (6 7 etc ...), mais pour les valeurs avec une virgule, rien ne marche, enfin il me trouve 0 donnée alors que ce n'est pas possible ... Smiley bawling

Ces valeurs je vais les chercher dans un fichier texte.

<FONT color="royalblue">Releas OXE</FONT>
		<p>
		<select id="select_Releas" >
			<option selected value= "all">all</option>
			<?php
				$rows = file("datas/Releas_oxe.txt", FILE_SKIP_EMPTY_LINES);
				foreach($rows as $value){
			?>
					<option value="<?php echo $value; ?>"><?php echo $value; ?></option>
			<?php
				}                                     
			?>                
		</select>						
		</p><br/>



Cette valeur choisi par l'utilisateur je la met ensuite dans la variable "url" afin d'utiliser de l ajax

Mon code php est dans un autre fichier et la fonction utilisée est sous cette forme:

function Nbr_Data ($type_data, $type_areaOUcountry, $areaOUcountry, $nom_data, $year, $month, $new_addon, $BPname, $segment, $Releas, $quantityORNet_euro){			
		$req_array = mysql_query('SELECT * FROM `actis_table`');
		$nb_data = 0;
		while ($champs = mysql_fetch_array($req_array)) {
                     if ($segment == $champs['Segment'] OR $segment == "all"){
                     [#red]if ($Releas == $champs['Releas_OXE'] OR $Releas == "all"){[/#]
if ($quantityORNet_euro == "quantity"){
$nb_data = $nb_data + 1;
}if ($quantityORNet_euro == "Net_euro"){
$nb_data = $nb_data + $champs['Net_EURO'];
                    }
                    }
              }
		return $nb_data; 
	}	



Voila donc c'est ici:

if ($Releas == $champs['Releas_OXE']


Que je fais la comparaison et qu'apparemment il n'arrive pas a retrouver la valeur que je demande de comparer quand y a une virgule avec ce qu'il y a dans la base de données (ou il y a des virgules également).


J'espère que c'est clair Smiley ohwell et que vous pourrez m'aider =)
Modérateur
Salut,

Un float (une variable avec chiffre décimal) est exprimé par un point et non par une virgule :

5.1
5.11
5.12
6.00
etc.

Lorsque l'utilisateur saisi un float avec une virgule, str_replace() devrait t'aider.

Sinon, tu peux regarder du côté de setlocale aussi.
Modifié par niuxe (16 Apr 2013 - 18:27)