Page 1 sur 1

Comparaison chaîne de caractère

Posté : 09 févr. 2012, 08:48
par tsetse74
Bonjour,
Voila je récupère dans 2 tables des données.
Tables 'plats' et Tables 'catégorie_plat'
j'aimerai comparé une valeur ($selection) de la première table avec les valeurs de la 2eme table ($choix) est affiché un message suivant le résultat.
Mais lorsque je lance le code, il me récupère bien toute les données dans les 2 Tables (je peux les affichées) mais il ne me compare pas les 2 chaines de caractères et affiche le même message pour toutes les variables ($choix)
Affichage :
Spécialité savoyardes VS Glaces
Spécialité savoyardes doit etre egal à Glaces
Resultat Spécialité savoyardes est un mauvais choix


Dessert VS Glaces
Dessert doit etre egal à Glaces
Resultat Dessert est un mauvais choix


Glaces VS Glaces
Glaces doit etre egal à Glaces
Resultat Glaces est un mauvais choix

CODE :

Code : Tout sélectionner

<?php $id_plat = $_GET["id_plat"];// je récupère id_plat de la page précédente $requete=$PDO->prepare("SELECT * from plats WHERE id_plat = '$id_plat'"); // on prépare notre requête $requete->execute(array( 'id_plat' => '$id_plat' ));// On éxécute la requète $plat=$requete->fetch(PDO::FETCH_OBJ);// on dit qu'on veut que le résultat soit récupérable sous forme d'objet $resultat_categorie=$PDO->query('SELECT * from categorie_plat');// on prépare notre requête $resultat_categorie->setFetchMode(PDO::FETCH_OBJ); On éxécute la requète $selection=$plat->cat_plat ; // Voici ma première variable /* Je recupere ma 2 eme variable dans un boucle */ while ($ligne=$resultat_categorie->fetch()) { $choix=$ligne->cat_plat; // Voici ma 2eme variable echo '</br></br>'.$choix.' VS '.$selection.'</br>';// affiche les 2 variables à comparer echo ' <strong> '.$choix .' </strong> doit etre egal à '.$selection.'</br>'; if($selection != $choix){echo 'Resultat '.$choix.' est un mauvais choix </br>';} else {echo $choix.' est le bon choix car '.$choix.' est <strong> '.$selection.' </strong> sont identique <br /> ';} } $resultat_categorie->closeCursor(); ?>
Si quelqu'un à une idée, Merci d'avance

Re: Comparaison chaîne de caractère

Posté : 09 févr. 2012, 09:34
par xTG
Caractères invisibles ? Utilises var_dump() ou bien strlen() sur tes variables pour obtenir plus d'informations.

Re: Comparaison chaîne de caractère

Posté : 09 févr. 2012, 11:18
par tsetse74
Bonjour xTG et merci,
en effet
en utilisant var_dump() :
var_dump($choix);
var_dump($selection);
voila ce qui s'affichait :
$selection = string(22) "Spécialité savoyardes "
$choix = string(21) "Spécialité savoyardes"
$choix = string(7) "Dessert"
$choix = string(6) "Glaces"
les 2 chaines de caractères :
$selection = string(22) "Spécialité savoyardes "
$choix = string(21) "Spécialité savoyardes"
n'avait pas le même nombre de caractèe 1 espace en plus sur $selection.
j'ai enlevé l'espace qui s'ajoutait quand je rentrais de nouvelles données dans la table "plat"
encore merci et bonne journée