if else qui fonctionne pas

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : if else qui fonctionne pas

par Ripat » 22 août 2005, 16:53

Le transtypage (int) n'est pas indispensable dans un if, fais simplement:
if (trim($cur['parcivilite']) == "Monsieur") 
Ca ne change rien au résultat mais, c'est plus logique (c'est le mot!) et lisible.

Bonne continuation (et un petit résolu :wink: )

par Maitrepylos » 22 août 2005, 16:29

T
Je suis étonné qu'un trim() ne fonctionne pas! Essaye, une fois encore:
echo (int) (trim($cur['parcivilite']) == "Monsieur");
Un grand merci cela fonctionne.

Je fais ceci et c'est nickel
if ((int) (trim($cur['parcivilite']) == "Monsieur"))
{
$pdf->Rect(127, 87, 35, 35);
}
else 
{
$pdf->Circle(144.5,104.5,17.5);
}
A mon avis j'ai du mal faire la commande "trim".

merci pour votre aide.

MaitrePylos

par Ripat » 22 août 2005, 15:29

Tu as simplement des espaces derrière ta variable.

Je suis étonné qu'un trim() ne fonctionne pas! Essaye, une fois encore:
echo (int) (trim($cur['parcivilite']) == "Monsieur");

par Maitrepylos » 22 août 2005, 13:48

Si
echo (int) ($cur['parcivilite'] == "Monsieur");
cela donne bien 0
for ($i = 0; $i < strlen($cur['parcivilite']); $i++){
  echo ord($cur['parcivilite']{$i}), ' - ';
}
echo '<hr />';
$var="Monsieur";
for ($i = 0; $i < strlen($var); $i++){
  echo ord($var{$i}), ' - ';
}
ceci donne

Code : Tout sélectionner

77 - 111 - 110 - 115 - 105 - 101 - 117 - 114 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 77 - 111 - 110 - 115 - 105 - 101 - 117 - 114 -
je suis sous linux et j'encode en utf8, cela ma déja posé des probléme peut-être ici aussi?

par Ripat » 22 août 2005, 13:15

Si
echo (int) ($cur['parcivilite'] == "Monsieur");
te donne 0, il y a certainement un caractère spécial dans ta chaîne $cur['parcivilite']

Petit test:
for ($i = 0; $i < strlen($cur['parcivilite']); $i++){
  echo ord($cur['parcivilite']{$i}), ' - ';
}
echo '<hr />';
$var="Monsieur";
for ($i = 0; $i < strlen($var); $i++){
  echo ord($var{$i}), ' - ';
}

par Maitrepylos » 22 août 2005, 12:44

la réponse est Madame et trim ne donne rien de précis non plus

par Ripat » 22 août 2005, 12:09

Un petit trim() sur la variable au cas où...

par ouckileou » 22 août 2005, 11:57

vérifie la condition exécutée avec un simple echo plutôt qu'avec les fonctions
if ($cur['parcivilite'] == "Monsieur")
{
echo "Monsieur";
$pdf->Rect(127, 87, 35, 35);
}
else
{
echo "Madame";
$pdf->Circle(144.5,104.5,17.5);
}
sinon je ne vois pas...

par Maitrepylos » 22 août 2005, 11:53

l'echo de la varibale donne Monsieur!

la je ramme

par ouckileou » 22 août 2005, 11:34

alors affiche avant ton test la variable $cur['parcivilite'] pour voir ce qu'il y a dedans

tu verras s'il y a un problème à ce niveau

par Maitrepylos » 22 août 2005, 11:32

avec des quotes autour de parcivilite peut-être :
$cur['parcivilite']
Non plus, j'ai l'impression qu'il ne compare pas le Monsieur de la bdd avec celui que j'ai inscrit
if ($cur['parcivilite']=="Monsieur") 

par ouckileou » 22 août 2005, 10:54

avec des quotes autour de parcivilite peut-être :
$cur['parcivilite']

if else qui fonctionne pas

par Maitrepylos » 22 août 2005, 10:53

Bonjour,

je récupère une valeur dans un bdd et j'essaie de faire un choix suivant cette valeur , mais il prend toujours le else
if ($cur[parcivilite]=="Monsieur")
{
$pdf->Rect(127, 87, 35, 35);
}
else 
{
$pdf->Circle(144.5,104.5,17.5);
}
Merci de votre aide

MaitrePylos