Retourner sur PHPFrance


 FAQFAQ   RechercherRechercher   Liste des MembresListe des Membres   Groupes d'utilisateursGroupes d'utilisateurs   Accéder aux archivesArchives  S'enregistrerS'enregistrer 
 ProfilProfil   Se connecter pour vérifier ses messages privésSe connecter pour vérifier ses messages privés   ConnexionConnexion 
PHPFrance est maintenu par des bénévoles et soutenu par les sociétés Actoo et Anaska, Conseil et Formation pour PHP
Pour optimiser vos chances commencez par consulter la FAQ et faites une recherche.
Bon esprit, politesse et entraide sont les règles de ce forum.

[A Voir] PHP+SQL : Etapes à suivre pour résoudre les problèmes

 
Poster un nouveau sujet   Répondre au sujet    PHPFrance Index du Forum -> SQL & Bases de données
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
ouckileou
Ganesha modérateur


Inscrit le: 21 Fév 2005
Messages: 5320
Localisation: Paris
Ce membre fait partie de l'équipe de modérationCe membre fait partie des ViPHP
MessagePosté le: 10 Juin 2006, 15:06    Sujet du message: PHP+SQL : Etapes à suivre pour résoudre les problèmes Répondre en citant

Si vous obtenez ce genre d'erreurs PHP :
PHP a écrit:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in à la ligne n

PHP a écrit:
Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in à la ligne n

ou tout autre message identique avec n'importe quelle fonction PHP nécessitant une ressource de type mysql result...

Il y a de fortes chances que l'exécution de votre requête SQL ait échoué Sad

Même chose si vous attendiez un tableau rempli de données à l'affichage, et qu'il est tout vide...

Bref, dès que vous exécutez une requête SQL via PHP et qu'elle ne fonctionne pas, ou produit des résultats surprenants, avant toute autre chose, voici les étapes à suivre pour tenter de trouver l'erreur :

  1. Faites afficher les messages d'erreur MySQL dans votre script PHP :
    PHP:
    mysql_query($requeteSQL) or die (mysql_error());

    et lisez ces messages Exclamation

  2. Faites afficher le SQL généré, c'est à dire la chaîne contenant votre requête et qui résultera d'une concaténation avec des variables par exemple.
    C'est ce code SQL qui est important et que vous devrez fournir lors d'une question sur ce forum.

    PHP:
    // cette ligne ne sera pas utile pour vous aider, car on ne sait pas ce que contient $variable
    $requeteSQL "SELECT * FROM table1 WHERE colonne2 = '".$variable."'"

    // par contre le résultat de ceci est utile, car on connaîtra ainsi le SQL réellement exécuté par le serveur de base de données
    echo $requeteSQL;


  3. Regardez si rien ne cloche dans ce SQL, certaines erreurs de syntaxe se remarquent tout de suite.

  4. Faites des essais, et testez-les directement dans MySQL, via phpMyAdmin ou une autre interface de MySQL.
    Idea Au passage, une bonne habitude est de créer un modèle de requête qui marche puis d'insérer ce code SQL dans le script PHP pour le rendre dynamique. Autant ne pas multiplier les risques d'erreur en testant à la fois le PHP et le SQL.


Ceci est valable pour tous les SGBD bien évidemment.

Pour avoir de l'aide sur une fonction ou la syntaxe d'instructions SQL, n'hésitez pas à aller faire un tour dans la documentation du SGBD que vous utilisez :
MySQL : http://dev.mysql.com/doc/refman/5.0/fr/
PostgreSQL : http://www.postgresql.org/docs/8.1/interactive/index.html
Bien sûr sélectionnez le manuel qui correspond à la version que vous utilisez...

Et puis, Rechercher ou Google peuvent parfois être utiles...

Et là, si VRAIMENT vous ne trouvez pas... alors vous pouvez venir demander de l'aide sur le forum.
Avec ces trois informations indispensables :
SGBD utilisé et en quelle version, code SQL exécuté et message d'erreur obtenu

Merci d'avance.

Idea Pour information, cet article de PHPDebutant recense toutes les petites choses bêtes (mais qui arrivent à tous) et récurrentes qui peuvent planter un script : ça marche pas ?
_________________
Idea À consulter AVANT de poster : Idea
Recherche sur le forum - FAQ - Tutoriaux - Débugger du SQL
Documentation PHP - Documentation MySQL - Erreurs PHP courantes - Ça marche pas ?

Pouce Inscrivez vous ! : www.worldcommunitygrid.org


Dernière édition par ouckileou le 17 Juin 2008, 15:38; édité 1 fois
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web de l'utilisateur
Montrer les messages depuis:   
Poster un nouveau sujet   Répondre au sujet    PHPFrance Index du Forum -> SQL & Bases de données Toutes les heures sont au format GMT + 2 Heures
Page 1 sur 1

 
Sauter vers:  
Vous pouvez poster de nouveaux sujets dans ce forum
Vous pouvez répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas voter dans les sondages de ce forum
Powered by phpBB © phpBB Group - PHPFrance est hébergé par Sivit