Erreur dans les conditions avec PHP

Résolu/Fermé
the Red - 18 avril 2008 à 15:21
 the Red - 18 avril 2008 à 15:41
Bonjour,

J'ai un problème avec le PHP, mais je vois vraiment pas d'où ça peut venir

J'ai le code suivant, qui détermine bien où je dois aller, avec des echo un peu partout pour tracer le parcours. Comme vous pouvez le constater, il y a de grosses incohérences : il va dans des conditions alors qu'il ne devrait pas y aller, et je ne comprends vraiment pas pourquoi ...

$tab = Travaille::findByService($ser->getattr('id_service'));
echo 'taille de tab = '.sizeof($tab);
$tab2 = Domaine::findByService($ser->getattr('id_service'));
echo 'taille de tab2 = '.sizeof($tab2);
if (sizeof($tab2)>1) {
foreach ($tab2 as $t) {
if (!in_array($t,$tab)){
$tab[] = $t;
echo 'tab2 a plusieurs elements : '.sizeof($tab2);
}
}
}
if (sizeof($tab2==1)){
if (!in_array($tab2[0],$tab)){
$tab[] = $tab2[0];
echo 'tab2 a un seul element '.sizeof($tab2).' = '.$tab2[0].'et tab[1] = '.$tab[1];
}
}
if (sizeof($tab2==0)){
$tab = $tab;
echo 'tab2 a aucun element '.sizeof($tab2);
}
$body .= "<tr height=\"35px\"><td><center>";
$n = 0;
print_r($tab);

taille de tab = 1
taille de tab2 = 1
tab2 a un seul element 1 = 1
et tab[1] = 1
tab2 a aucun element 1
Array ( [0] => 2 [1] => 1 ) 21

taille de tab = 2
taille de tab2 = 1
tab2 a aucun element 1
Array ( [0] => 1 [1] => 0 ) 10

taille de tab = 2
taille de tab2 = 0
tab2 a un seul element 0 = et tab[1] = 1
tab2 a aucun element 0
Array ( [0] => 0 [1] => 1 [2] => ) 01

J'espère que quelqu'un pourra m'aider !
A voir également:

1 réponse

Reivax962 Messages postés 3672 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
18 avril 2008 à 15:35
Bonjour,

Regarde tes parenthèses !
if(sizeof($tab2==1)){
et
if (sizeof($tab2==0)){

Y a pas un truc qui te parait bancal ? ;)

Allez, courage, je sais ce que c'est de plus rien voir tellement on a passé du temps sur de code :p

Reivax
0
Rhaaaa que ça fait mal !

Duis combien de temps je m'arrache les cheveux avec ça ? 2 heures ?

Merci beaucoup, je pense que j'aurais jamais trouvé, ou bien peut être à tête reposée, mais là ...

Merci beaucoup !
0