Probleme Php et condition if
Tydher
Messages postés
123
Date d'inscription
Statut
Membre
Dernière intervention
-
Yoan Messages postés 11795 Date d'inscription Statut Modérateur Dernière intervention -
Yoan Messages postés 11795 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
J'ai un gros probleme sur des conditions.
Sur une page j'affiche les données d'un contact et d'une entreprise.
Quand je clique sur suppression du contact il me le supprime
J'actualise la page et j'ai des conditions :
Si le resultat de la requete ne renvoi rien alors les données contact ne s'affiche pas (en gros pas de tableau)
sinon il me l'affiche
Le probleme c'est que le code parcourt toute les conditions
$req9 = mysql_query($sql8) or die("erreur de connexion 9".mysql_error());
if (is_null($sql8))
{
$test = 'NULL';
}
else
{
$test = 'PAS NULL';
}
if ($test = 'NULL')
{
$req = mysql_query($sql) or die("erreur de connexion 1".mysql_error());
$req2 = mysql_query($sql2) or die("erreur de connexion 2".mysql_error());
$req3 = mysql_query($sql3) or die("erreur de connexion 3".mysql_error());
$req4 = mysql_query($sql4) or die("erreur de connexion 4".mysql_error());
$req5 = mysql_query($sql5) or die("erreur de connexion 5".mysql_error());
$req6 = mysql_query($sql6) or die("erreur de connexion 6".mysql_error());
$req7 = mysql_query($sql7) or die("erreur de connexion 7".mysql_error());
$req8 = mysql_query($sql0) or die("erreur de connexion 8".mysql_error());
//On utilise mysql_result car il n'y a qu'un seul resultat numerique possible.
$result = mysql_result($req8,0) or die("erreur de connexion 8".mysql_error());
$resultat ='1';
}
if ($test = 'PAS NULL')
{
$req = mysql_query($sql) or die("erreur de connexion 1".mysql_error());
$req2 = mysql_query($sql2) or die("erreur de connexion 2".mysql_error());
$req3 = mysql_query($sql3) or die("erreur de connexion 3".mysql_error());
$req4 = mysql_query($sql4) or die("erreur de connexion 4".mysql_error());
$req5 = mysql_query($sql5) or die("erreur de connexion 5".mysql_error());
$req6 = mysql_query($sql6) or die("erreur de connexion 6".mysql_error());
$req7 = mysql_query($sql7) or die("erreur de connexion 7".mysql_error());
$req8 = mysql_query($sql0) or die("erreur de connexion 8".mysql_error());
//On utilise mysql_result car il n'y a qu'un seul resultat numerique possible.
$result = mysql_result($req8,0) or die("erreur de connexion 8".mysql_error());
$resultat = mysql_result($req9,0) or die("erreur de connexion 9".mysql_error());
}
avec un echo $test et $resultat il m'affiche
PAS NULL 61 (61 = id du contact)
Si j'inverse les conditions :
$req9 = mysql_query($sql8) or die("erreur de connexion 9".mysql_error());
if (is_null($sql8))
{
$test = 'NULL';
}
else
{
$test = 'PAS NULL';
}
if ($test = 'PAS NULL')
{
$req = mysql_query($sql) or die("erreur de connexion 1".mysql_error());
$req2 = mysql_query($sql2) or die("erreur de connexion 2".mysql_error());
$req3 = mysql_query($sql3) or die("erreur de connexion 3".mysql_error());
$req4 = mysql_query($sql4) or die("erreur de connexion 4".mysql_error());
$req5 = mysql_query($sql5) or die("erreur de connexion 5".mysql_error());
$req6 = mysql_query($sql6) or die("erreur de connexion 6".mysql_error());
$req7 = mysql_query($sql7) or die("erreur de connexion 7".mysql_error());
$req8 = mysql_query($sql0) or die("erreur de connexion 8".mysql_error());
//On utilise mysql_result car il n'y a qu'un seul resultat numerique possible.
$result = mysql_result($req8,0) or die("erreur de connexion 8".mysql_error());
$resultat = mysql_result($req9,0) or die("erreur de connexion 9".mysql_error());
}
if ($test = 'NULL')
{
$req = mysql_query($sql) or die("erreur de connexion 1".mysql_error());
$req2 = mysql_query($sql2) or die("erreur de connexion 2".mysql_error());
$req3 = mysql_query($sql3) or die("erreur de connexion 3".mysql_error());
$req4 = mysql_query($sql4) or die("erreur de connexion 4".mysql_error());
$req5 = mysql_query($sql5) or die("erreur de connexion 5".mysql_error());
$req6 = mysql_query($sql6) or die("erreur de connexion 6".mysql_error());
$req7 = mysql_query($sql7) or die("erreur de connexion 7".mysql_error());
$req8 = mysql_query($sql0) or die("erreur de connexion 8".mysql_error());
//On utilise mysql_result car il n'y a qu'un seul resultat numerique possible.
$result = mysql_result($req8,0) or die("erreur de connexion 8".mysql_error());
$resultat ='1';
}
j'ai NULL 1
JE ne comprend pas
J'ai un gros probleme sur des conditions.
Sur une page j'affiche les données d'un contact et d'une entreprise.
Quand je clique sur suppression du contact il me le supprime
J'actualise la page et j'ai des conditions :
Si le resultat de la requete ne renvoi rien alors les données contact ne s'affiche pas (en gros pas de tableau)
sinon il me l'affiche
Le probleme c'est que le code parcourt toute les conditions
$req9 = mysql_query($sql8) or die("erreur de connexion 9".mysql_error());
if (is_null($sql8))
{
$test = 'NULL';
}
else
{
$test = 'PAS NULL';
}
if ($test = 'NULL')
{
$req = mysql_query($sql) or die("erreur de connexion 1".mysql_error());
$req2 = mysql_query($sql2) or die("erreur de connexion 2".mysql_error());
$req3 = mysql_query($sql3) or die("erreur de connexion 3".mysql_error());
$req4 = mysql_query($sql4) or die("erreur de connexion 4".mysql_error());
$req5 = mysql_query($sql5) or die("erreur de connexion 5".mysql_error());
$req6 = mysql_query($sql6) or die("erreur de connexion 6".mysql_error());
$req7 = mysql_query($sql7) or die("erreur de connexion 7".mysql_error());
$req8 = mysql_query($sql0) or die("erreur de connexion 8".mysql_error());
//On utilise mysql_result car il n'y a qu'un seul resultat numerique possible.
$result = mysql_result($req8,0) or die("erreur de connexion 8".mysql_error());
$resultat ='1';
}
if ($test = 'PAS NULL')
{
$req = mysql_query($sql) or die("erreur de connexion 1".mysql_error());
$req2 = mysql_query($sql2) or die("erreur de connexion 2".mysql_error());
$req3 = mysql_query($sql3) or die("erreur de connexion 3".mysql_error());
$req4 = mysql_query($sql4) or die("erreur de connexion 4".mysql_error());
$req5 = mysql_query($sql5) or die("erreur de connexion 5".mysql_error());
$req6 = mysql_query($sql6) or die("erreur de connexion 6".mysql_error());
$req7 = mysql_query($sql7) or die("erreur de connexion 7".mysql_error());
$req8 = mysql_query($sql0) or die("erreur de connexion 8".mysql_error());
//On utilise mysql_result car il n'y a qu'un seul resultat numerique possible.
$result = mysql_result($req8,0) or die("erreur de connexion 8".mysql_error());
$resultat = mysql_result($req9,0) or die("erreur de connexion 9".mysql_error());
}
avec un echo $test et $resultat il m'affiche
PAS NULL 61 (61 = id du contact)
Si j'inverse les conditions :
$req9 = mysql_query($sql8) or die("erreur de connexion 9".mysql_error());
if (is_null($sql8))
{
$test = 'NULL';
}
else
{
$test = 'PAS NULL';
}
if ($test = 'PAS NULL')
{
$req = mysql_query($sql) or die("erreur de connexion 1".mysql_error());
$req2 = mysql_query($sql2) or die("erreur de connexion 2".mysql_error());
$req3 = mysql_query($sql3) or die("erreur de connexion 3".mysql_error());
$req4 = mysql_query($sql4) or die("erreur de connexion 4".mysql_error());
$req5 = mysql_query($sql5) or die("erreur de connexion 5".mysql_error());
$req6 = mysql_query($sql6) or die("erreur de connexion 6".mysql_error());
$req7 = mysql_query($sql7) or die("erreur de connexion 7".mysql_error());
$req8 = mysql_query($sql0) or die("erreur de connexion 8".mysql_error());
//On utilise mysql_result car il n'y a qu'un seul resultat numerique possible.
$result = mysql_result($req8,0) or die("erreur de connexion 8".mysql_error());
$resultat = mysql_result($req9,0) or die("erreur de connexion 9".mysql_error());
}
if ($test = 'NULL')
{
$req = mysql_query($sql) or die("erreur de connexion 1".mysql_error());
$req2 = mysql_query($sql2) or die("erreur de connexion 2".mysql_error());
$req3 = mysql_query($sql3) or die("erreur de connexion 3".mysql_error());
$req4 = mysql_query($sql4) or die("erreur de connexion 4".mysql_error());
$req5 = mysql_query($sql5) or die("erreur de connexion 5".mysql_error());
$req6 = mysql_query($sql6) or die("erreur de connexion 6".mysql_error());
$req7 = mysql_query($sql7) or die("erreur de connexion 7".mysql_error());
$req8 = mysql_query($sql0) or die("erreur de connexion 8".mysql_error());
//On utilise mysql_result car il n'y a qu'un seul resultat numerique possible.
$result = mysql_result($req8,0) or die("erreur de connexion 8".mysql_error());
$resultat ='1';
}
j'ai NULL 1
JE ne comprend pas
A voir également:
- Probleme Php et condition if
- Excel cellule couleur si condition texte - Guide
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Condition et excel - Guide
- If exist ✓ - Forum Autoit / batch
2 réponses
Salut,
Normal pour tes tests tu utilise l'opérateur d'affectation (=) au lieu de l'opérateur de comparaison (==) :)
De plus tu écris:
if (is_null($sql8))
Qui ne sera jamais null puisque c'est ta requête et pas le retour de ta requête.
Ce serait plutôt
if(is_null($req9))
Ou encore mieux
if(mysql_num_rows($req9) == 0)
Bon courage.
Normal pour tes tests tu utilise l'opérateur d'affectation (=) au lieu de l'opérateur de comparaison (==) :)
De plus tu écris:
if (is_null($sql8))
Qui ne sera jamais null puisque c'est ta requête et pas le retour de ta requête.
Ce serait plutôt
if(is_null($req9))
Ou encore mieux
if(mysql_num_rows($req9) == 0)
Bon courage.
Houlala, c'est un peu bricolé tout ça, hein ? ^^
Le principal problème est que la comparaison n'est pas = mais ==
Donc ça c'est à la limite pas bien violent à corriger, mais le reste je trouve ça pas très propre.
En réaction à ça : is_null($sql8)
au lieu de tester ça regarde plutôt ce qu'a renvoyé mysql ( if(mysql_num_rows($req8)>0) ), parce que si jamais ta requête n'est pas nulle mais qu'elle ne renvoie aucun n-uplet, tu va rentrer dans le if quand-même.
Ensuite, n'utilise pas 'NULL' et 'PAS NULL'. C'est comme si tu utilisais $nom='JEAN-PIERRE' ou 'PAULETTE', ça marche aussi mais c'est pas vraiment parlant, utilise plutôt un booléen : $requete_valide=TRUE ou FALSE
Ensuite, je ne vois pas l'intérêt de tester $test='NULL' ou 'PAS NULL' puisque tu fais la même chose à l'intérieur. Si c'est parce que tu n'as pas fini d'écrire ton code, pense à sortir le code commun aux deux conditions. D'ailleurs plutôt que deux if() ce serait plutôt ici un if() else ou if() elseif()
EDIT : Donc c'est une redite :)
Le principal problème est que la comparaison n'est pas = mais ==
Donc ça c'est à la limite pas bien violent à corriger, mais le reste je trouve ça pas très propre.
En réaction à ça : is_null($sql8)
au lieu de tester ça regarde plutôt ce qu'a renvoyé mysql ( if(mysql_num_rows($req8)>0) ), parce que si jamais ta requête n'est pas nulle mais qu'elle ne renvoie aucun n-uplet, tu va rentrer dans le if quand-même.
Ensuite, n'utilise pas 'NULL' et 'PAS NULL'. C'est comme si tu utilisais $nom='JEAN-PIERRE' ou 'PAULETTE', ça marche aussi mais c'est pas vraiment parlant, utilise plutôt un booléen : $requete_valide=TRUE ou FALSE
Ensuite, je ne vois pas l'intérêt de tester $test='NULL' ou 'PAS NULL' puisque tu fais la même chose à l'intérieur. Si c'est parce que tu n'as pas fini d'écrire ton code, pense à sortir le code commun aux deux conditions. D'ailleurs plutôt que deux if() ce serait plutôt ici un if() else ou if() elseif()
EDIT : Donc c'est une redite :)