Comment savoir le dernier ID (MySQL)

Résolu
ImmortalPC Messages postés 954 Date d'inscription mardi 11 mai 2004 Statut Membre Dernière intervention 11 novembre 2008 - 1 juil. 2005 à 15:59
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 - 1 juil. 2005 à 22:17
Salut,

j'ai un super problème.

j'ai une table comme cela :

CREATE TABLE `test` (
`ID` int(11) NOT NULL auto_increment,
`sujet` varchar(255) NOT NULL default '',
PRIMARY KEY (`ID`)
) TYPE=MyISAM AUTO_INCREMENT=1 ;

J'aimerai savoir l'id suivant avant de le creer pour faire un lien.
@+



Immortal-PC,
téléchargements,astuces ,entre-aide informatique , conseils pour vos problèmes d'ordi.
<!--StartFragment -->Grâce à Immortal-PC votre ordinateur passera les âges.

6 réponses

mageonyme Messages postés 121 Date d'inscription samedi 10 janvier 2004 Statut Membre Dernière intervention 1 décembre 2009
1 juil. 2005 à 16:34
par exemple
si tu es sûr de le créer après, créée le tout de suite avec un repère dedans, genre :
mysql_query("INSERT INTO test VALUES ('', 'repere')");
puis tu selectionnes le repère pour savoir lequel c'est comme ça tu peux trouver l'id :
$sql = "SELECT * FROM test WHERE sujet='repere'";
$req = mysql_query($sql) or die($error.'Erreur SQ!'.$sql.''.mysql_error());
while($data = mysql_fetch_array($req)) { $id=$data['id']; }
maintenant tu peux donc le créer avec un update, genre :
$sql = "UPDATE test SET sujet='$ta_variable' WHERE id='$id'";
$req = mysql_query($sql) or die($error.'Erreur SQ!'.$sql.''.mysql_error());
c'est du bidouillage mais ça marche...

sinon tu prend simplement le dernier id dans l'ordre, puisque t'as mis un increment auto puis tu ajoutes 1 mais bon ça risque de ne pas marcher si tu en fais plusieur... (ORDER BY id DESC LIMIT 0,1)

sinon tu enlève l'increment auto comme ça tu decide toi meme...
3
ImmortalPC Messages postés 954 Date d'inscription mardi 11 mai 2004 Statut Membre Dernière intervention 11 novembre 2008 2
1 juil. 2005 à 16:50
Merci !!!

J'y avais pensé mais je voulais savoir si il y avait une autre solution.

Merci beaucoup !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

@+

Immortal-PC,
téléchargements,astuces ,entre-aide informatique , conseils pour vos problèmes d'ordi.
<!--StartFragment -->Grâce à Immortal-PC votre ordinateur passera les âges.
0
mageonyme Messages postés 121 Date d'inscription samedi 10 janvier 2004 Statut Membre Dernière intervention 1 décembre 2009
1 juil. 2005 à 16:53
pas de solutions directes à ma connaissance...
0
ImmortalPC Messages postés 954 Date d'inscription mardi 11 mai 2004 Statut Membre Dernière intervention 11 novembre 2008 2
1 juil. 2005 à 17:09
ok

Merci quand meme.

@+

Immortal-PC,
téléchargements,astuces ,entre-aide informatique , conseils pour vos problèmes d'ordi.
<!--StartFragment -->Grâce à Immortal-PC votre ordinateur passera les âges.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
psykoyo Messages postés 1 Date d'inscription mardi 11 novembre 2003 Statut Membre Dernière intervention 1 juillet 2005
1 juil. 2005 à 17:35
une recherche dans la doc non ? car ce que tu fais est un peu lourd !!

http://www.nexen.net/docs/php/annotee/function.mysql-insert-id.php
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
1 juil. 2005 à 22:17
Salut,



ça c'est valable si tu insères une valeur. Dans le cas contraire tu fais un truc dans ce genre :



SELECT MAX(ID) FROM table



tu récupères l'id via un fetch_row() et tu l'incrémentes de 1



a +

<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
0
Rejoignez-nous