probleme comparaison dans un if.

Eléphant du PHP | 288 Messages

08 sept. 2006, 21:21

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();

Eléphant du PHP | 451 Messages

08 sept. 2006, 21:54

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.
Jpaul
J'essaye d'aider : parfois je fais des erreurs, on me les corrige et j'apprends un peu plus. Super ce forum :)

Eléphant du PHP | 288 Messages

08 sept. 2006, 22:08

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();
?>

Eléphant du PHP | 288 Messages

08 sept. 2006, 22:39

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.