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 :

mysql_fetch_object(): supplied argument is not a valid M..


Sujet :

PHP & Base de données

  1. #1
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2007
    Messages
    758
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Février 2007
    Messages : 758
    Par défaut mysql_fetch_object(): supplied argument is not a valid M..
    Bonsoir depuis 16h00 je m'arrache les cheveux, a cause de ce message suivant qui s'affiche :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in c:\program files\easyphp1-7\www\testsphp\caserne\modification2.php on line 27
    En faite j'ai crée un page avec un aperçu des champs de ma table et à coté j'ai placé un lien pour les modifier.

    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
    40
    <?
     
    /**
     * @author WE
     * @copyright 2007
     */
     
    mysql_connect("localhost","root","");
    mysql_select_db("test");
    $reponse = mysql_query("SELECT * FROM personnel ORDER BY Centre");
     
    // On fait une boucle pour lister tous ce qui est dans la table.
     
    while ($donnees = mysql_fetch_array($reponse) )
     
    {
    echo("<div align=\"right\">".$donnees->Centre." ".$donnees->Matricule." ".$donnees->Grade." ".$donnees->Nom." ".$donnees->Prenom."<a href=\"modification2.php?idPersonne=".$donnees->id_personne."\">modifier</a><br>\n") ;
     
    ?>	
     
     
    <center>
    <table border="1" width="80%" id="table1">
    <tr>
    <td width="50"><? echo $donnees['Centre']; ?></td> 
    <td width="50"><? echo $donnees['Matricule']; ?></td>
    <td width="60"><? echo $donnees['Grade']; ?></td>
    <td width="50"><? echo $donnees['Nom']; ?> </td>
    <td width="50"><? echo $donnees['Prenom']; ?> </td>
    </tr>
    </table>
    </center>
     
     
    <?
    }
    mysql_close(); // Deconnexion de la bd
     
     
    ?>
    Ensuite le lien pour modifier le champ choisi renvoir vers cette page :
    c'est sur cette page que l'erreur apparait ???
    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
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    <html>
      <head>
        <title>modification de données en PHP :: partie2</title>
      </head>
    <body>
      <?php
     
      //connection au serveur:
      $cnx = mysql_connect( "localhost", "root", "" ) ;
     
      //sélection de la base de données:
      $db = mysql_select_db( "test" ) ;
     
      //récupération de la variable d'URL,
      //qui va nous permettre de savoir quel enregistrement modifier
      $id  = $_GET["idPersonne"] ;
     
      //requête SQL:
      $sql = "SELECT *
                FROM personnes
    	    WHERE id_personne = ".$id ;
     
      //exécution de la requête:
      $requete = mysql_query( $sql, $cnx ) ;
     
      //affichage des données:
      if( $result = mysql_fetch_object( $requete ) )
      {
      ?>
     
      <form name="insertion" action="modification3.php" method="POST">
      <input type="hidden" name="id" value="<?php echo($id) ;?>">
      <table border="0" align="center" cellspacing="2" cellpadding="2">
        <tr align="center">
          <td>Centre</td>
          <td><input type="text" name="Centre" value="<?php echo($result->Centre) ;?>"></td>
        </tr>
        <tr align="center">
          <td>Matricule</td>
          <td><input type="text" name="Matricule" value="<?php echo($result->Matricule) ;?>"></td>
        </tr>
        <tr align="center">
          <td>Grade</td>
          <td><input type="text" name="Grade" value="<?php echo($result->Grade) ;?>"></td>
        </tr>
        <tr align="center">
          <td>Nom</td>
          <td><input type="text" name="Nom" value="<?php echo($result->Nom) ;?>"></td>
        </tr>
        <tr align="center">
          <td>Prénom</td>
          <td><input type="text" name="Prenom" value="<?php echo($result->Prenom) ;?>"></td>
        </tr>
        <tr align="center">
          <td colspan="2"><input type="submit" value="modifier"></td>
        </tr>
      </table>
    </form>
      <?php
      }//fin if 
      ?>
    </body>
    </html>
    et enfin ma derniére page qui met à jour les données :


    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
    40
    41
    42
    43
    44
    45
    <?php
      //connection au serveur
      $cnx = mysql_connect( "localhost", "root", "" ) ;
     
      //sélection de la base de données:
      $db  = mysql_select_db( "test" ) ;
     
      //récupération des valeurs des champs:
      //centre:
      $Centre     = $_POST["Centre"] ;
      //matricule:
      $Matricule = $_POST["Matricule"] ;
      //grade:
      $Grade = $_POST["Grade"] ;
      //nom:
      $Nom        = $_POST["Nom"] ;
      //prénom:
      $Prenom        = $_POST["Prenom"] ;
     
      //récupération de l'identifiant de la personne:
      $id         = $_POST["id"] ;
     
      //création de la requête SQL:
      $sql = "UPDATE personnel
                SET Centre         = '$Centre', 
    	          Matricule     = '$Matricule',
    		  Grade    = '$Grade',
    		  Nom           = '$Nom',
    		  Prenom = '$Prenom'
               WHERE id_personne = '$id' " ;
     
      //exécution de la requête SQL:
      $requete = mysql_query($sql, $cnx) or die( mysql_error() ) ;
     
     
      //affichage des résultats, pour savoir si la modification a marchée:
      if($requete)
      {
        echo("La modification à été correctement effectuée") ;
      }
      else
      {
        echo("La modification à échouée") ;
      }
    ?>

    S'il vous plait aidez moi

  2. #2
    Membre émérite Avatar de sharrascript
    Homme Profil pro
    Développeur Web indépendant
    Inscrit en
    Avril 2007
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web indépendant

    Informations forums :
    Inscription : Avril 2007
    Messages : 678
    Par défaut
    bonsoir,

    Je ne sais pas si cela vient de là, mais tu fais un UPDATE en mettant des apostrophes sur l'id, pourquoi tu ne fais pas de même avec la sélection?

    ex:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    //requête SQL:
      $sql = "SELECT *
                FROM personnes
    	    WHERE id_personne = '".$id."'" ;
    ++

  3. #3
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2007
    Messages
    758
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Février 2007
    Messages : 758
    Par défaut
    non ca change rien pas besoin car id est un nombre !

    Merci quand meme pour ta remarque
    j'ai tous essayé mais là je vois vraiment pu quoi faire !

  4. #4
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Par défaut
    Et si vous commenciez par ajouter or die(mysql_error()); à vos requêtes de sélection ? Ça nous (comme vous) permettrait de saisir le problème.

    Je remarque, et peut être est-ce normal, que votre table dans la requête en question se nomme différemment : personnes alors qu'ailleurs il s'agit de personnel.

Discussions similaires

  1. [MySQL] Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource
    Par phedon77 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 13/07/2010, 17h50
  2. [MySQL] Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource
    Par rach20032 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 16/10/2007, 12h52
  3. supplied argument is not a valid MySQL result resource ?!
    Par alfigor dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 19/04/2006, 14h38
  4. mysql_num_row supplied argument is not a valid mysql
    Par rane dans le forum Requêtes
    Réponses: 5
    Dernier message: 23/03/2006, 18h01
  5. Réponses: 3
    Dernier message: 30/09/2004, 20h16

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