[PHP][MySQL] MySQL retourne une valeur erroné à une requète max(id)

MySQL retourne une valeur erroné à une requète max(id) [PHP][MySQL] - PHP - Programmation

Marsh Posté le 12-07-2004 à 14:27:47    

Bonjour :hello:
 
J'ai dans un code en php :

Code :
  1. $requete="select max(id) from avis";
  2. $id=mysql_query($requete);
  3. print("<br>l'avis $id a été ajouté<br>\n" );


le reste de l'ajout se passe bien, mais j'ai un problème pour récupérer l'id(numéro automatique) le plus grand.
 
Executé dans le serveur mysql à la main, la requète retourne la bonne valeur, mais dans la réponse affiché à partir du code PHP, j'ai la valeur :
Resource id #3
 
Je ne vois pas d'ou sort cette valeur, étant donné que ma requete sql est bonne :'(
 
Merci de votre aide [:romf]


---------------
Fais le ou ne le fais pas, mais il n'y a pas d'essai !!!
Reply

Marsh Posté le 12-07-2004 à 14:27:47   

Reply

Marsh Posté le 12-07-2004 à 14:39:04    

mysql_query ne retoure pas le résultat de la réquête, mais un objet de type "Résultat de requête" d'où Resource id #3 :D
 
Il faut utiliser une des fonction fetch pour lire le résultat.
 
Par exemple :

Code :
  1. $requete="select max(id) from avis";
  2. $result=mysql_query($requete);
  3. $ligne=mysql_fetch_objetc($result);
  4. print("<br>l'avis " . $ligne->id . " a été ajouté<br>\n" );


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 12-07-2004 à 14:39:10    

id n'est pas le résultat de ta requete
utilise les méthodes qui vont bien pour récupérer le résultat
comme ca :
 

Code :
  1. <?php
  2.     mysql_connect("localhost", "mysql_user", "mysql_password" ) or
  3.         die("Impossible de se connecter :  " . mysql_error());
  4.     mysql_select_db("mydb" );
  5.     $result = mysql_query("SELECT id, name FROM mytable" );
  6.     while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
  7.         printf ("ID: %s  Name: %s", $row[0], $row[1]); 
  8.     }
  9.     mysql_free_result($result);
  10. ?>


 
exmple trouvé la : http://www.nexen.net/docs/php/anno [...] -array.php
 
EDIT : grillé... (et puis c plus joli dans des blocs le code :D


Message édité par hop le fou le 12-07-2004 à 14:40:28
Reply

Marsh Posté le 12-07-2004 à 14:41:10    

Ceci dit, si id est un champs en auto incrément, tu peux tout simplement le récupérer avec mysql_insert_id() :D
 
Edit, oui pour le bloc de code, mais moi j'esplik mieux :sol:


Message édité par Mara's dad le 12-07-2004 à 14:42:48

---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 12-07-2004 à 14:44:45    

Mara's dad a écrit :

Ceci dit, si id est un champs en auto incrément, tu peux tout simplement le récupérer avec mysql_insert_id() :D
 
Edit, oui pour le bloc de code, mais moi j'esplik mieux :sol:


 
Oui, mais moi je donne le lien qui va bien :sol:   [:ddr555]

Reply

Marsh Posté le 12-07-2004 à 14:49:33    

Merci à vous deux, mon problème est résolu grace à vous [:romf]


---------------
Fais le ou ne le fais pas, mais il n'y a pas d'essai !!!
Reply

Marsh Posté le 12-07-2004 à 14:51:53    

hop le fou a écrit :

Oui, mais moi je donne le lien qui va bien :sol:   [:ddr555]


Tout à fait, mais je prèfére la VO et les objets : http://www.php.net/manual/en/funct [...] object.php :kaola:
 
Et si tu continue a m'embêter, je le dis à mon grand frère :o


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 12-07-2004 à 14:52:27    

Klaimant a écrit :

Merci à vous deux, mon problème est résolu grace à vous [:romf]


 
Merci à toi, on as bien rigolé :lol:


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 12-07-2004 à 14:56:17    

Mara's dad a écrit :

Merci à toi, on as bien rigolé :lol:


 
C'est vrai que c'est hachement trop drole kikool [:dawa]
 
 
 :pfff:


---------------
Fais le ou ne le fais pas, mais il n'y a pas d'essai !!!
Reply

Marsh Posté le 12-07-2004 à 15:11:17    

Mara's dad a écrit :

mysql_query ne retoure pas le résultat de la réquête, mais un objet de type "Résultat de requête" d'où Resource id #3 :D
 
Il faut utiliser une des fonction fetch pour lire le résultat.
 
Par exemple :

Code :
  1. $requete="select max(id) from avis";
  2. $result=mysql_query($requete);
  3. $ligne=mysql_fetch_objetc($result);
  4. print("<br>l'avis " . $ligne->id . " a été ajouté<br>\n" );



 
+1 c'est ce que je fais aussi, sauf que j'utilise:
$ligne=mysql_fetch_object($result); plutot que:
$ligne=mysql_fetch_objetc($result);
 
... OK promis je le ferais plus, ça arrive à tout le monde la dislexie des doigts :P


---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
Reply

Marsh Posté le 12-07-2004 à 15:11:17   

Reply

Marsh Posté le 12-07-2004 à 15:26:50    

Klaimant a écrit :

C'est vrai que c'est hachement trop drole kikool [:dawa]
 :pfff:


C'est pas ton ignorance qui me fait rire, c'est l'échange de gamineries entre hop le fou et moi :D  
 
Si je considérais les débutants comme tu semble le penser, c'est pas moi qui t'aurrai répondu. :ange:


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 12-07-2004 à 16:36:25    

Mara's dad a écrit :

C'est pas ton ignorance qui me fait rire, c'est l'échange de gamineries entre hop le fou et moi :D  
 
Si je considérais les débutants comme tu semble le penser, c'est pas moi qui t'aurrai répondu. :ange:


 
Autant pour moi [:romf]


---------------
Fais le ou ne le fais pas, mais il n'y a pas d'essai !!!
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed