[Résolu] mysql_fetch_assoc ? - Version imprimable +- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org) +-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38) +--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51) +--- Sujet : [Résolu] mysql_fetch_assoc ? (/showthread.php?tid=2725) Pages :
1
2
|
[Résolu] mysql_fetch_assoc ? - Rouge - 09-07-2008 Bonjour, je voulais savoir si cette commande php était devenue obsolète? (le script tout pret vient du site du zéro et ne fonctionne plus depuis 24 heures) Code PHP :
le message d'erreur affiché ressemble à celà: Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /mnt/web4/40/58/51658858/htdocs/connectes.php on line 6 Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /mnt/web4/40/58/51658858/htdocs/connectes.php on line 27 :heuuu: RE: mysql_fetch_assoc? - Kassak - 09-07-2008 Tu as un problème sur tes requêtes, n'hésite pas à abuser des "or die (mysql_error());" qui te permettront de déboguer facilement RE: mysql_fetch_assoc? - Sephi-Chan - 10-07-2008 Je dirais que la table connectes n'existe pas. Enfin bref, ce sont des erreurs dans tes requêtes. Remplace ta première requête par : Code PHP :
Sephi-Chan RE: mysql_fetch_assoc? - z3d - 10-07-2008 Tout comme Sephi-Chan le suggère implicitement par rapport à Kassak je teconseil d'utiliser exit() plutot que die() qui est un alias et comme chacun le sait les alias, il faut les éviter car à court ou à long terme celui-ci peut être appelé à disparaître. De plus die() contrairement à exit() ne stop pas l'éxécution du script et laisser un script continuer alors que celui-ci obtient des erreurs dès le départ n'est pas rigoureux du tout. Personnellement je pousse les vérifications à son maximum, je conditionne tout ce qu'il est possible. Exemple : Code PHP :
Il va de soit que la condition else ne doit en aucun cas apparaître sur le site en production, d'ailleurs aucun message d'erreur qu'elle qu'il soit ne doit apparaître en production hormis ceux personnalisé, n'oublions pas toutefois le logging des erreurs rencontrées. Exemple : Citation :Une erreur inattendue est survenue ! RE: mysql_fetch_assoc? - Sephi-Chan - 10-07-2008 z3d a écrit :De plus die() contrairement à exit() ne stop pas l'éxécution du script et laisser un script continuer alors que celui-ci obtient des erreurs dès le départ n'est pas rigoureux du tout.Comme tu le dis, c'est un alias, il a donc le même comportement. De plus, ton contrôle ne contrôle pas vraiment tout. Si tu veux tout contrôler, il faut vérifier s'il y a eu une erreur SQL, auquel cas, selon que tu sois en configuration de production ou de développement, tu affiches/log ou non. Ensuite il faut tester si tu as le bon nombre de résultat. Ici, il ne doit rien avoir d'autre qu'un résultat, il faut donc tester si le num_rows vaut 1. Sephi-Chan RE: mysql_fetch_assoc? - z3d - 10-07-2008 Sephi-Chan a écrit :Comme tu le dis, c'est un alias, il a donc le même comportement.Au temps pour moi, il y a des années que je n'utilise plus die(); Sephi-Chan a écrit :De plus, ton contrôle ne contrôle pas vraiment tout. Si tu veux tout contrôler, il faut vérifier s'il y a eu une erreur SQL, auquel cas, selon que tu sois en configuration de production ou de développement, tu affiches/log ou non. Le test de l'erreur SQL est bien présent. Sephi-Chan a écrit :Ensuite il faut tester si tu as le bon nombre de résultat. Ici, il ne doit rien avoir d'autre qu'un résultat, il faut donc tester si le num_rows vaut 1.Je donne une indication sur la manière de tout conditionné maintenant si il faut en plus de cela détaillé pas à pas ce qu'il faut faire ou pas alors c'est que je me suis peut être trompé de forum :heuuu: M'enfin tout cela pour en arriver à une conclusion importante : fuyez les alias ! RE: mysql_fetch_assoc? - Sephi-Chan - 10-07-2008 z3d a écrit :Je donne une indication sur la manière de tout conditionné maintenant si il faut en plus de cela détaillé pas à pas ce qu'il faut faire ou pas alors c'est que je me suis peut être trompé de forum :heuuu:Mais non, mais non, c'était juste un complément d'information. Je ne remettais pas en cause ton post. Sephi-Chan RE: mysql_fetch_assoc? - z3d - 10-07-2008 Y'a pas de sushi Ton indication est toujours bonne à prendre, je ne l'ai pas dit mais ca va de soit RE: mysql_fetch_assoc? - Cartman34 - 10-07-2008 Désolé z3d, mais die() est comme tu l'as dis un alias de exit alors de la définition d'un alias on peut se douter que die() et exit() font exactement la même chose et c'est le cas. die() stoppe le script et affiche le message immédiatement. Il vient d'ailleurs en recours à une redirection header qui n'empêche pas la continuité d'exécution du script. De plus, les raisons historiques étant fréquemment évoqués lors de l'ancienneté des fonctions et die étant la plus courante, ell ne sera jamais supprimé du catalogue PHP. Rouge: mysql_fetch_assoc() est une "amélioration" de mysql_fetch_array() et est une fonction rendant un résultat plus léger donc elle est plutôt loin d'être obsolète. C'est juste que le sdz n'est pas un bon prof ^^ (et je le vois malheureusement encore...on doit tout leur apprendre à ces jeunes) [RESOLU] mysql_fetch_assoc? - Rouge - 10-07-2008 Merci à tous pour vos propositions, en fait Sephi-Chan avait raison, j'avais viré la table "connectés" en bidouillant ma base de données. :mauvais: |