Warning: mysql_fetch_object(): supplied argu

TucSky -  
 TucSky -
Bonjour,
Je débute en Mysql et j'essai de monter un script qui me permet de choisir un utilisateur dans une liste puis de modifier ses données...
La premiere page, celle qui sert à afficher la liste des utilisateurs fonctionne, mais quand je veut en modifier un, ça me donne :

Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in /public_html/wordpress/scripts/modification2.php on line 26


Cette page devrais nous permetre de modifier la "balance" d'un utilisateur puis de l'envoyer sur la base mysql.

Voici le Contenu de "modification2.php" ainsi que sa ligne 26 :
<html> 
  <head> 
  </head> 
<body> 
  <?php 
   //connection au serveur: 
    $cnx = mysql_connect( "xxxx", "xxxx", "xxxx" ) ; 
  
    //sélection de la base de données: 
    $db = mysql_select_db( "xxxx" ) ; 
  
  //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 iConomy 
     WHERE id = ".$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>username</td> 
      <td><input type="text" name="username" value="<?php echo($result->username) ;?>"></td> 
    </tr> 
    <tr align="center"> 
      <td>balance</td> 
      <td><input type="text" name="balance" value="<?php echo($result->balance) ;?>"></td> 
    </tr> 
    <tr align="center"> 
      <td colspan="2"><input type="submit" value="modifier"></td> 
    </tr> 
  </table> 
</form> 
  <?php 
  }//fin if  
  ?> 
  </body> 
</html>


J'ai repassé la ligne qui pose problème en gras.
Voilà voilà, Merci d'avance !

4 réponses

le père
 
Bonjour

C'est que ta requête s'est mal passée et qu'au lieu de tendr eune ressource, elle a rendu un booleen
Pour savoir ce qui cloche, ajoute un or die(mysql_error())
  $requete = mysql_query( $sql, $cnx ) or die(mysql_error()) ; 

Tu devrais d'ailleurs le faire systématiquement, ça fait gagner beaucoup de temps en mise au point.
0
TucSky
 
Bonjour, j'ai ajouté
or die(mysql_error())
et après avoir sélectionné l'utilisateur, ça me dit :

Unknown column 'teste' in 'where clause'
0
le père
 
J'imagine que 'teste' c'est la valeur que tu as données à id.
La requête que tu as créées est donc :
$sql = "SELECT * FROM iConomy WHERE id = teste ;
Si tu veux que mysql ne prenne pas teste pour un nom de champ, il faut l'entourer de simples quotes
$sql = "SELECT * FROM iConomy WHERE id = 'teste' ; 
et pour arriver à ça avec une variable et en restant dans ton style d'écriture:
 $sql = "SELECT * 
            FROM iConomy 
     WHERE id = '".$id."'" ; 
0
TucSky
 
AH j'ai trouvé :D
Sur la page de sélection de la personne qu'on veut modifier, Le lien "modifier" en face du pseudo était :

<a href=\"modification2.php?idPersonne=".$result->username."\">modifier</a>
Or, il fallais mettre :
<a href=\"modification2.php?idPersonne=".$result->id."\">modifier</a>

C'est pour cela que lorsqu'on arrivait sur la page qui posait problème, le lien était :
http://minejxwk.com/scripts/modification2.php?idPersonne=teste
Mais "teste" n'était pas l'id mais l'username :)

Désolé vous ne pouviez pas le savoir, merci quand même de m'avoir aidé !
0