Probleme php isset et empty

Résolu/Fermé
Math31 - 8 juin 2009 à 16:00
dreamfeeder Messages postés 253 Date d'inscription samedi 24 novembre 2007 Statut Membre Dernière intervention 25 juillet 2009 - 8 juin 2009 à 16:38
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
A voir également:

14 réponses

dreamfeeder Messages postés 253 Date d'inscription samedi 24 novembre 2007 Statut Membre Dernière intervention 25 juillet 2009 54
8 juin 2009 à 16:05
Si je ne m'abuse, or die stoppe l'execution du script du coup la suite du code n'est pas effectué.
0
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?
0
En fait non rien de normal il est sensé m'afficher juste
'Pas de contact'
0
dreamfeeder Messages postés 253 Date d'inscription samedi 24 novembre 2007 Statut Membre Dernière intervention 25 juillet 2009 54
8 juin 2009 à 16:19
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Il n'y à hélas aucun changement, toujours l'affichage du message d'erreur.
0
dreamfeeder Messages postés 253 Date d'inscription samedi 24 novembre 2007 Statut Membre Dernière intervention 25 juillet 2009 54
8 juin 2009 à 16:22
fais un echo "$req9" pour voir ce qui est retourné
0
Voila l'echo $req9;

Resource id #6
0
dreamfeeder Messages postés 253 Date d'inscription samedi 24 novembre 2007 Statut Membre Dernière intervention 25 juillet 2009 54
8 juin 2009 à 16:26
donc ta requete $sql8 retourne bien quelquechose et n'est donc pas vide d'ou le passage a la deuxieme condition.
0
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.
0
dreamfeeder Messages postés 253 Date d'inscription samedi 24 novembre 2007 Statut Membre Dernière intervention 25 juillet 2009 54
8 juin 2009 à 16:30
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é
0
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
0
dreamfeeder Messages postés 253 Date d'inscription samedi 24 novembre 2007 Statut Membre Dernière intervention 25 juillet 2009 54
8 juin 2009 à 16:35
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)
0
C'est parfait tu est un as sa marche.

Merci beaucoup et bonne fin de journée
0
dreamfeeder Messages postés 253 Date d'inscription samedi 24 novembre 2007 Statut Membre Dernière intervention 25 juillet 2009 54
8 juin 2009 à 16:38
De rien, bonne fin de journée a toi aussi pense a mettre le sujet en résolu.


edit: pardon ct deja fait lol.
0