Problème pour récupérer la dernière id

Problème pour récupérer la dernière id - PHP - Programmation

Marsh Posté le 30-08-2006 à 04:13:29    

Bien je vous présente mon soucis.
 
Voilà mon code :
 

Citation :

 
$requete = "SELECT id, motdepasse, pseudo, email, msn, signature FROM membres WHERE id = (SELECT MAX(id) FROM membres)";
$reponse = mysql_query($requete);
$id = mysql_result($reponse, 0, 'id');
$pseudo = mysql_result($reponse, 0, 'pseudo');


 
Donc sur EasyPHP 1.8, aucun problème, ça marche.
Je récupère bien la dernière ligne de données entrée dans la base.
 
Mais quand je met ça sur le serveur, j'ai ça :
 
 

Citation :

Warning: mysql_result(): supplied argument is not a valid MySQL result resource in /home.10.2/genovagu/www/inscription.php on line 110
 
Warning: mysql_result(): supplied argument is not a valid MySQL result resource in /home.10.2/genovagu/www/inscription.php on line 111


 
Euh, je comprend vraiment pas pourquoi  :??:


---------------
PIGs_DarkSith a parlé !
Reply

Marsh Posté le 30-08-2006 à 04:13:29   

Reply

Marsh Posté le 30-08-2006 à 08:39:15    

suffit de lire ton message d'erreur :  
supplied argument is not a valid MySQL result resource
 
donc ton $reponse n'est pas une ressource résultat valide ... donc ton mysql_query a retourné false ... donc ta requête a planté ... donc surement que les structures de tes bases de données sont différentes, entre ce que tu appelles ton "EasyPHP 1.8" et ton "serveur".

Reply

Marsh Posté le 30-08-2006 à 09:16:44    

Au lieu de récupérer la ligne dont l'ID est le plus grand, récupère plutôt la 1ère ligne de la table triée par ordre décroissant, ca simplifiera ;)

Reply

Marsh Posté le 30-08-2006 à 18:15:18    

Djebel1, j'ai bien compris que y'avais une erreur un niveau de la requête SQL  ;)
Mais la question serait plutôt qu'elle est cette erreur ? Car moi je ne la vois pas  :(  
 
Mrbebert, merci pour le conseil, c'est pas bête du tout :D


---------------
PIGs_DarkSith a parlé !
Reply

Marsh Posté le 30-08-2006 à 18:21:38    

:whistle:
 
Edit : Encore qqn qui code sans code de debuggage :o


Message édité par Dj YeLL le 30-08-2006 à 18:28:40

---------------
Gamertag: CoteBlack YeLL
Reply

Marsh Posté le 30-08-2006 à 19:33:32    

visiblement la version de MySQL sur ton serveur ne supporte pas les sous requetes


Message édité par betsamee le 30-08-2006 à 19:34:12
Reply

Marsh Posté le 30-08-2006 à 21:50:34    

Dans ton code php, fait un echo mysql_error() apres mysql_query et regarde ce qu'il retourne


---------------
Sonnerie polyphonique - Sonnerie Hi-Fi - Sonnerie Ultrason  
Reply

Marsh Posté le 30-08-2006 à 23:19:08    

Citation :

:whistle:
 
Edit : Encore qqn qui code sans code de debuggage :o


 
Euh, tu peux être plus explicite  :??:  
 

Citation :

visiblement la version de MySQL sur ton serveur ne supporte pas les sous requetes


Ah, pas terrible cette version de MySQL alors :(  
 

Citation :

Dans ton code php, fait un echo mysql_error() apres mysql_query et regarde ce qu'il retourne


Oki, je testerais avec  ;)


---------------
PIGs_DarkSith a parlé !
Reply

Marsh Posté le 30-08-2006 à 23:22:45    

PIGs_DarkSith a écrit :


Euh, tu peux être plus explicite  :??: (#1)
 

Citation :

Dans ton code php, fait un echo mysql_error() apres mysql_query et regarde ce qu'il retourne


Oki, je testerais avec (#2)  ;)


 
(#1) : Voir (#2) ;)


---------------
Gamertag: CoteBlack YeLL
Reply

Marsh Posté le 31-08-2006 à 07:51:11    

je n'ai aucun doute qu en enlevant la sous requete ca marchera

Reply

Marsh Posté le 31-08-2006 à 07:51:11   

Reply

Marsh Posté le 31-08-2006 à 08:25:49    

et de quelle version est ton serveur mysql ?
 
Note : j'ai eu la même erreur quand j'ai utilisé une sous requête sur un serveur mysql 4.0... or les sous requête ne sont suporté qu'a partir de 4.(plus que 0 :D). Mon serveur me donnais la possibilité de migrer sous mysql 5.0... et depuis plus de probléme ;)

Reply

Marsh Posté le 31-08-2006 à 22:12:17    

J'ai eu le problème des sous-requêtes entre mon EasyPHP et mon hébergeur.
 
Mais comme on te l'a conseillé, utilise "ORDER BY id DESC LIMIT 1", ça ira beaucoup plus vite.
 
Tiens et "WHERE id=table_ref.MAX(id)" ça marcherait pas ?

Reply

Sujets relatifs:

Leave a Replay

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