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

Langage PHP Discussion :

Warning: mysql_fetch_assoc(): MYSQL


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    412
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Décembre 2008
    Messages : 412
    Par défaut Warning: mysql_fetch_assoc(): MYSQL
    Bonjour,

    J'ai créer une basse de donnée pour afficher les anniversaires des membres de mon site.

    Ce que je ne comprend pas c'est pourquoi j'ai le message d'erreur qui m'affiche
    Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in L:\Program files 2\wamp\www\maison\commun\anniversaire\anniversaire1.php on line 39
    La ligne 39 est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    while ($donnees = mysql_fetch_assoc($reponse))
    Ou ai je fait l'erreur ?
    Merci d'avance, cordialement.

    Tout le code
    Code : 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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
     
     
    <?php
    // ...definition de la date
    $jour_en_cours = date("d");
    $mois_en_cours = date("M");
    $anne_en_cours = date("Y");
     
    /* ------------------ CONNEXION A LA BASSE DE DONNES ------------------ */
    $nom_basse_de_donnees = ("habitation");
     
    mysql_connect("localhost", "root", ""); // Connexion à MySQL
    mysql_select_db("$nom_basse_de_donnees"); // Sélection de la base de donnée
     
    /* ------------------ CONNEXION TABLE ------------------ */
    $nom_table = ("anni");
     
    //Requête SQL Lecture table : afficher le jour
    $reponse = mysql_query("SELECT nom, jour_anniv from $nom_table WHERE mois_anniv = $mois_en_cours ORDER BY jour_anniv"); // Requête SQL
     
    ?>
    <?php
     
     
    echo "Nous sommes le <strong>". $jour_en_cours . " ".$mois_en_cours." ".$anne_en_cours."</strong><br />\n";
     
    // ... exécution et, si résultats, affichage
     
    while ($donnees = mysql_fetch_assoc($reponse))       
    {
            $nom = htmlspecialchars($donnees['nom']);
            $jour = $donnees['jour_anniv'];
            $mois = $donnees['mois_anniv'];
            $anne = $donnees['anne_anniv'];
            echo "Aujourd'hui le $jour_en_cours, c'est l'anniversaire de <strong>". $nom ." née le ". $jour . " ".$mois." ".$anne."</strong><br />\n";
    }
     
    mysql_close(); // Fermeture de la connexion Mysql
    ?>

  2. #2
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2009
    Messages
    195
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2009
    Messages : 195
    Par défaut
    Je te conseillerais de stocker ta requête dans une variable et ensuite de l'afficher avec un bon vieux echo
    Sa te permettra dans un premier temps de vérifier si la requête que tu passe est bien celle que tu penses

  3. #3
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2009
    Messages
    195
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2009
    Messages : 195
    Par défaut
    Ah oui deuxième chose comment veux tu récupérer ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $nom = htmlspecialchars($donnees['nom']);
            $jour = $donnees['jour_anniv'];
            $mois = $donnees['mois_anniv'];
            $anne = $donnees['anne_anniv'];
    Alors que dans ta requête mois_anniv et anne_anniv sont absents ?

  4. #4
    Membre Expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Par défaut
    Salut

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $reponse = mysql_query("SELECT nom, jour_anniv from $nom_table WHERE mois_anniv = $mois_en_cours ORDER BY jour_anniv"); // Requête SQL
    Tu exploite une variable $mois_en_cours qui peut être est une chaine de date (genre 2010-07-27) et non un nombre entier (genre timestamp).
    Du coup, faut rajouter des simples quotes (et rajouter aussi un mysql_real_escape_string)
    Ou alors la variable $nom_table contient une erreur.

    N'avais tu pas une erreur avant celle ci sur la requête ?
    Rajoute un mysql_error() pour le mysql_query ?


    Exemple : (quote + mysql_real_escape_string + mysql_error)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $requete = "SELECT nom, jour_anniv from $nom_table WHERE mois_anniv = '".mysql_real_escape_string($mois_en_cours)."' ORDER BY jour_anniv";
    echo $requete.'<br />'; // Pour visualiser la requête
     
    $reponse = mysql_query($requete) or die('Erreur : '.mysql_error()); // Requête SQL

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    412
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Décembre 2008
    Messages : 412
    Par défaut
    bonjour

    comment voulez vous que j'affiche la requête avec un echo.

    au debut j'ai fait ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     
    $nom_table = ("anni");
     
    // ...Requête sql
    $sql = "SELECT * from $nom_table WHERE mois_anniv = $mois_en_cours ORDER BY jour_anniv";
    // ... exécution et, si résultats, affichage
    $retour = mysql_query($sql) or die("Exécution de la requête impossible");
    while ($donnees = mysql_fetch_assoc($retour))
    mais il m'affiche "Exécution de la requête impossible"

    Merci.

  6. #6
    Membre Expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Par défaut
    comment voulez vous que j'affiche la requête avec un echo.
    Juste après l'initialisation de la variable $sql.

    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $sql = "SELECT bla bla bla";
    echo $sql;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $nom_basse_de_donnees = ("habitation");
    $nom_table = ("anni");
    Il est inutile de mettre des parenthèse ci-dessus.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $nom_basse_de_donnees = "habitation";
    $nom_table = "anni";

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    412
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Décembre 2008
    Messages : 412
    Par défaut
    Bonjour,

    Cela était du à
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $mois_en_cours = date("M");
    au lieu de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $mois_en_cours = date("m");
    Mais il m'affiche
    Nous sommes le 27 07 2010
    SELECT * from anni WHERE jour_anniv = 27 ORDER BY jour_anniv
    Aujourd'hui le 27, c'est l'anniversaire de paul née le 27 07 1958
    Aujourd'hui le 27, c'est l'anniversaire de Julien née le 27 08 2000
    alors qu'il devrai afficher uniquement l'aniversaire d'aujourdhui du 27.07.1958 et non pas avec celui aussi du mois d'août, je pense que cela vient de ma requête SQL,je ne trouve pas comment indiquer à SQL qu'il affiche le mois en cours avec en plus "mois_anniv = $mois_en_cours".

    comment l'ajouter dans :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $requete = "SELECT * from $nom_table WHERE jour_anniv = $jour_en_cours ORDER BY jour_anniv";
    Merci.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] warning : mysql_fetch_assoc() expects parameter 1 to be resource
    Par zozoman dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 15/05/2013, 13h51
  2. [MySQL] Warning: mysql_fetch_assoc() expects sur listes liées
    Par HAbroc dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 18/04/2012, 05h09
  3. [MySQL] Message d'erreur: Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean
    Par gennievre dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 19/03/2012, 03h51
  4. Réponses: 8
    Dernier message: 15/05/2010, 09h41
  5. [MySQL] erreur Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result
    Par kate59 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 12/02/2008, 17h52

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