Page 1 sur 1

probleme comparaison dans un if.

Posté : 08 sept. 2006, 21:21
par damaskinos
Bonjour

J'ai un fichier php qui lit dans un fichier csv. tout fonctionne, le probleme est que dans mon if j'effectue une comparaison, c'est deux nombres, même quand les nombres sont identiques je n'arrive pas à afficher ce qu'il y a a l'interieur de mon if. J'ai meme essayé avec
strcmp
sans succès. Merci pour votre aide je joinds mon code.
if(isset($_POST["frame_number"]) && !empty($_POST["frame_number"]))
{
	$number = $_POST["frame_number"];
	//lire le fichier
	$fp = fopen("test.csv","r"); //lecture
	
	while (!feof($fp))
	{ // On parcours le fichier
		$ligne = fgets($fp,4096);
		$ligne = preg_replace("#\"#","",$ligne);
		list($number1,$menu1,$number2,$menu2,$number3,$menu3,$number4
,$menu4,$number5,$menu5,$number6,$menu6,$number7,$menu7
,$text1,$text2,$lineNumber) = split(";",$ligne);
		
		if($lineNumber == $number)
		{
		
			echo "&menu1=$menu1&menu2=$menu2&menu3=$menu3&menu4=$menu4&menu5=$menu5&menu6=$menu6&menu7=$menu7&number1=$number1&number2=$number2&number3=$number3&number4=$number4&number5=$number5&number6=$number6&number7=$number7&text1=$text1&text2=$text2&line=$lineNumber&test=trouver<br>";
		}
			
	}//fin while
	
	fclose($fp); // Fermeture du fichier
}
else
exit();

Posté : 08 sept. 2006, 21:54
par jpaul
Salut,

As tu vérifié le type de tes variables ?
A ta place, je ferais un :
echo "<BR>lineNumber='".$lineNumber."'";
echo "<BR>number='".$number."'";
echo "<BR>".gettype ($lineNumber);
echo "<BR>".gettype ($number);
Pour vérifier...
Bonne chance.

Posté : 08 sept. 2006, 22:08
par damaskinos
J'ai essaye et le type est string pour les deux. alors j'ai changé mon code de comparaison j'ai mis un strcmp et ca marche toujours pas.

voils le code changé
<?php

if(isset($_POST["frame_number"]) && !empty($_POST["frame_number"]))
{
	$number = $_POST["frame_number"];
	//lire le fichier
	$fp = fopen("test.csv","r"); //lecture
	
	while (!feof($fp))
	{ // On parcours le fichier
		$ligne = fgets($fp,4096); // On se déplace d'une ligne
		$ligne = preg_replace("#\"#","",$ligne);
		list($number1,$menu1,$number2,$menu2,$number3,$menu3,$number4,$menu4,$number5,$menu5,$number6,$menu6,$number7,$menu7,$text1,$text2,$lineNumber) = split(";",$ligne);
		
		echo "<BR>lineNumber='".$lineNumber."'";
		echo "<BR>number='".$number."'";
		echo "<BR>".gettype ($lineNumber);
		echo "<BR>".gettype ($number); 
		
		if(strcmp($lineNumber,$number) == 0)
		{
		
			echo "&menu1=$menu1&menu2=$menu2&menu3=$menu3&menu4=$menu4&menu5=$menu5&menu6=$menu6&menu7=$menu7&number1=$number1&number2=$number2&number3=$number3&number4=$number4&number5=$number5&number6=$number6&number7=$number7&text1=$text1&text2=$text2&line=$lineNumber&test=trouver<br>";
		}
			
	}//fin while
	
	fclose($fp); // Fermeture du fichier
}
else
exit();
?>

Posté : 08 sept. 2006, 22:39
par damaskinos
j'ai trouvé le problème. J'avais des caractère invisible dans ma string que je lisais dans mon fichier csv. Avec trim la question est réglée.

merci pour ton temps jpaul.