IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Utilisation de mysql_fetch_array ()


Sujet :

PHP & Base de données

  1. #1
    Membre averti
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Janvier 2013
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2013
    Messages : 30
    Par défaut Utilisation de mysql_fetch_array ()
    Bonjour,

    Je ne comprend pas sur une de mes pages j'ai l’erreur suivante :

    Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in /public_html/cMisePaiementFichesFrais.php on line 83

    Voici le code en référence :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
     <?php
        $req = "SELECT utilisateur.id, nom, prenom, fichefrais.mois, SUM(FraisF.montantForfaitNoKm + IndemKm.montantIndemKm) AS montantForfait,";
        $req .= "      (fichefrais.montantValide - SUM(FraisF.montantForfaitNoKm + IndemKm.montantIndemKm)) AS montantHorsForfait, fichefrais.montantValide AS totalfichefrais";
        $req .= " FROM utilisateur ";
        $req .= "      INNER JOIN fichefrais ON (utilisateur.id=fichefrais.idVisiteur)";
        $req .= "      INNER JOIN (";
        $req .= "	     SELECT utilisateur.id, fichefrais.mois, SUM(LigneFraisForfait.quantite * FraisForfait.montant) AS montantForfaitNoKm";
        $req .= "         FROM utilisateur INNER JOIN fichefrais ON utilisateur.id=fichefrais.idVisiteur";
        $req .= "                          INNER JOIN LigneFraisForfait ON (fichefrais.idVisiteur = LigneFraisForfait.idVisiteur  AND fichefrais.mois = LigneFraisForfait.mois)";
        $req .= "                          INNER JOIN FraisForfait ON LigneFraisForfait.idFraisForfait = FraisForfait.id";
        $req .= "         WHERE fichefrais.idEtat = 'VA'";
        $req .= "           AND utilisateur.idType = 'V'";
        $req .= "           AND LigneFraisForfait.idFraisForfait != 'KM'";
        $req .= "	      GROUP BY utilisateur.id, fichefrais.mois";
        $req .= "         ) AS FraisF ON (fichefrais.idVisiteur = FraisF.id AND fichefrais.mois = FraisF.mois)";
        $req .= "      INNER JOIN(";
        $req .= "         SELECT utilisateur.id, fichefrais.mois, SUM(LigneFraisForfait.quantite * indemniteKm) AS montantIndemKm";
        $req .= "         FROM utilisateur INNER JOIN fichefrais ON utilisateur.id=fichefrais.idVisiteur";
        $req .= "                          INNER JOIN LigneFraisForfait ON (fichefrais.idVisiteur = LigneFraisForfait.idVisiteur  AND fichefrais.mois = LigneFraisForfait.mois)";
        $req .= "                          INNER JOIN typeVehicule ON fichefrais.idTypeVehicule = typeVehicule.id";
        $req .= "         WHERE fichefrais.idEtat = 'VA'";
        $req .= "           AND utilisateur.idType = 'V'";
        $req .= "           AND LigneFraisForfait.idFraisForfait = 'KM'";
        $req .= "	      GROUP BY utilisateur.id, fichefrais.mois";
        $req .= "         ) AS IndemKm ON (FraisF.id = IndemKm.id AND FraisF.mois = IndemKm.mois)";
        $req .= " WHERE fichefrais.idEtat = 'VA'";
        $req .= "   AND utilisateur.idType = 'V'";
        $req .= " GROUP BY utilisateur.id, nom, prenom, fichefrais.mois";
        $idJeuFicheAPayer = mysql_query($req, $idConnexion);


    Merci beaucoup.

  2. #2
    Expert confirmé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 418
    Par défaut
    C'est parce que tu as une erreur dans ta requête et donc elle ne retourne pas une ressource mais false (un boolean). Et donc mysql_fetch_array() ne peut pas fonctionner.

  3. #3
    Membre expérimenté
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2004
    Messages
    144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Vatican

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mai 2004
    Messages : 144
    Par défaut
    Salut,

    comme l'a indiqué ACIWEB, tu as une erreur dans ta requête. Dans ces cas le mieux est de faire un echo de ta requête puis tu la copie et tu l'exécute dans phpmyadmin. et là tu pourra trouver l'erreur facilment.

  4. #4
    Membre averti
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Janvier 2013
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2013
    Messages : 30
    Par défaut
    Bonjour,

    Merci. Voici ce que MySQL me retourne :

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
     SELECT utilisateur.id, nom, prenom, fichefrais.mois, SUM( FraisF.montantForfaitNoKm + IndemKm.montantIndemKm ) AS montantForfait, "; (fichefrais.montantValide - SUM(FraisF.montantForfaitNoKm + IndemKm.montantIndemKm)) AS montantHorsForfait, fichefrais.montantValide AS totalfichefrais";

    MySQL a répondu: Documentation
    #1109 - Unknown table 'utilisateur' in field list
    Le problème est que la table utilisateur est bien présente dans ma BDD. :s


    Merci.

  5. #5
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    C'est bien un echo de $req que tu nous donnes là ?
    t'as pas l'impression qu'il ta un "; en trop au milieu de ta requête et qu'il en manque un bout (genre le FROM, tout ça) ?
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

Discussions similaires

  1. Utilisation de mysql_fetch_array()
    Par Elysio8567 dans le forum PHP & Base de données
    Réponses: 19
    Dernier message: 27/05/2013, 13h49
  2. Pb utilisation mysql_fetch_array
    Par Spitfire378 dans le forum Langage
    Réponses: 2
    Dernier message: 25/02/2011, 18h07
  3. [MySQL] Utilisation de "mysql_fetch_array"
    Par pazam dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 25/06/2009, 19h15
  4. [MySQL] Utilisation de mysql_fetch_array
    Par j2eejsp dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 21/12/2008, 18h40
  5. Réponses: 6
    Dernier message: 10/04/2008, 16h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo