Probleme php isset et empty
Résolu
Bonjour,
J'ai un probleme avec mon script php.
Que je m'explique : le script est sensé m'ouvrir un tableau avec 3 informations. Pour cela je diverses requetes SQL pour mon affichage.
Apres, pour une modification je recupere l'id de l'enregistrement (l'id est un champ numeric auto incremente)
Le probleme, est que lorsque je supprime un enregistrement, et que je réouvre les informations, au lieu de m'afficher 'Pas de contact ' il m'affiche une erreur sur la ligne 54 qui est la suivante:
$resultat = mysql_result($req9,0) or die("erreur result 2".mysql_error());
Cette ligne est lié a celle ci : $req9 = mysql_query($sql8) or die("erreur SQL 9".mysql_error());
Voila ma condition d'affichage
if(empty($req9))
{
echo 'Pas de Contact';
}
elseif(isset($req9))
{
$resultat = mysql_result($req9,0) or die("erreur result 2".mysql_error());
}
Et voila le message d'erreur
Warning: mysql_result() [function.mysql-result]: Unable to jump to row 0 on MySQL result index 6 in C:\Program Files\EasyPHP 3.0\www\Nouveau site banquestage\contact_entreprise.php on line 54 erreur result 2
Je ne comprend pas pourquoi il ne m'affiche pas l'echo dans la condition comme il devrait le faire
Merci
J'ai un probleme avec mon script php.
Que je m'explique : le script est sensé m'ouvrir un tableau avec 3 informations. Pour cela je diverses requetes SQL pour mon affichage.
Apres, pour une modification je recupere l'id de l'enregistrement (l'id est un champ numeric auto incremente)
Le probleme, est que lorsque je supprime un enregistrement, et que je réouvre les informations, au lieu de m'afficher 'Pas de contact ' il m'affiche une erreur sur la ligne 54 qui est la suivante:
$resultat = mysql_result($req9,0) or die("erreur result 2".mysql_error());
Cette ligne est lié a celle ci : $req9 = mysql_query($sql8) or die("erreur SQL 9".mysql_error());
Voila ma condition d'affichage
if(empty($req9))
{
echo 'Pas de Contact';
}
elseif(isset($req9))
{
$resultat = mysql_result($req9,0) or die("erreur result 2".mysql_error());
}
Et voila le message d'erreur
Warning: mysql_result() [function.mysql-result]: Unable to jump to row 0 on MySQL result index 6 in C:\Program Files\EasyPHP 3.0\www\Nouveau site banquestage\contact_entreprise.php on line 54 erreur result 2
Je ne comprend pas pourquoi il ne m'affiche pas l'echo dans la condition comme il devrait le faire
Merci
Configuration: Windows XP Firefox 3.0.10
14 réponses
-
Si je ne m'abuse, or die stoppe l'execution du script du coup la suite du code n'est pas effectué.
-
En effet sauf que maintenant il m'affiche le message d'erreur en haut de page et le tableau vide (ce qui est normal pour le tableau )
Comment reussir a enlever ce mesage d'erreur? -
En fait non rien de normal il est sensé m'afficher juste
'Pas de contact' -
Donc maintenant tu as "$req9=mysql_query($sql8);", c'est ca?
le truc c que mysql_query() retourne une ressource en cas de réussite et false en cas d'echec, donc $req9 ne sera pas vide, remplace "if(empty($req9))" par "if(!$req9)" ca devrait marcher -
Il n'y à hélas aucun changement, toujours l'affichage du message d'erreur.
-
fais un echo "$req9" pour voir ce qui est retourné
-
Voila l'echo $req9;
Resource id #6 -
donc ta requete $sql8 retourne bien quelquechose et n'est donc pas vide d'ou le passage a la deuxieme condition.
-
Seulement dans la table plus aucun enregistrement ne correspond.
Quand l'enregistrement existé et que je faisait un echo je voyait l'id du contact
En appuyant sur supprimer je supprime l'enregistrement entier. Plus rien ne devrais exister.
Apparement ce n'est pas le cas, pourtant la table est bien vide. -
en fait ta requete etant valide, mysql_query te retourne une ressource meme si aucun enregistrement correspondant n'a été trouvé je pense. essaye plutot de baser ta condition sur le nombre d'enregistrement retourné
-
si tu parle du $req9 = mysql_num_rows($sql8) or die("erreur SQL 9".mysql_error());
il m'affiche : Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\Program Files\EasyPHP 3.0\www\Nouveau site banquestage\contact_entreprise.php on line 46
erreur SQL 9 -
mysql_num_rows() ne fonctionne pas sur la requete mais sur le resultat obtenu avec mysql_query( la ressource) donc c'est mysql_num_rows($req9) que tu peux mettre dans ta condition genre if (mysql_num_rows($req9)==0)
-
C'est parfait tu est un as sa marche.
Merci beaucoup et bonne fin de journée -
De rien, bonne fin de journée a toi aussi pense a mettre le sujet en résolu.
edit: pardon ct deja fait lol.