[MySql] obtenir la valeur de l'actuel AUTO-INCREMENT

Résolu/Fermé
ajp55 Messages postés 426 Date d'inscription dimanche 31 juillet 2011 Statut Membre Dernière intervention 17 février 2015 - 28 avril 2013 à 15:10
 oliversoft - 19 janv. 2016 à 22:14
Bonjour.
Je debute en PHP en MySQL, et je voulais obtenir l'actuel valeur de l'auto-increment d'une table avant de faire mon insertion.
après insertion, je sais que je peux faire un
mysql_insert_id()
pour trouver le dernier identifiant de l'insertion précedente. mais je veux pas faire de insertion avant de savoir quel étai l'identifiant. je veux, à un moment donné, consulter la valeur actuel de mon auto-increment.
Quelqu'un peut il m'aider?
Merci d'avance pour toute tentative de réponses.
A voir également:

4 réponses

Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
28 avril 2013 à 16:09
tu fais une requette en recherchant le maxi de la colone qui est en autoincrement

$sql="SELECT MAX(id) AS max_id .......
0
ajp55 Messages postés 426 Date d'inscription dimanche 31 juillet 2011 Statut Membre Dernière intervention 17 février 2015 23
28 avril 2013 à 16:32
ceci n'est pas toujours vrai d'autan plus que le dernier element peut avoir été supprimé. mais l'auto incrément lui, continue au suivant enrégistrement; La requete est possible, mais cela ne restera pas vrai pour toute elements. si le dernier n'a été supprimé, alors, c'est correct.
0
jeremy.s Messages postés 1226 Date d'inscription lundi 28 mars 2011 Statut Membre Dernière intervention 2 septembre 2013 79
29 avril 2013 à 15:21
Salut !

Si tu utilises l'objet PDO, tu as last_insert_id, à essayer ! Je pense que ca marche même sans avoir fait un insert into juste avant. (Equivalent de ton mysql_insert_id )

Sinon il doit y avoir un trigger quelque part pour l'auto increment, reste juste à le trouvé !
0
ajp55 Messages postés 426 Date d'inscription dimanche 31 juillet 2011 Statut Membre Dernière intervention 17 février 2015 23
1 mai 2013 à 17:54
merci à tous,
vous avez été d'une grande aide. j'utilise la méthode de elghafoud.
Thk a Alain_42
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
29 avril 2013 à 08:10
et comme ça:

$query = 'SHOW TABLE STATUS';
	$result = mysql_query($query) or ;
	//On parcours les ligne de resultats
	while( $infos_tables = mysql_fetch_array($result) )
	{
		//Si le nom de la table $infos_tables[0] == au nom de la table dont vous voulez l'autoincrement ...
		if( $infos_tables[0] == 'nom_de_ta_table' )
			$id_autoincrement = $infos_tables[10];
	}
-1
ajp55 Messages postés 426 Date d'inscription dimanche 31 juillet 2011 Statut Membre Dernière intervention 17 février 2015 23
29 avril 2013 à 11:37
correct Alain_42, mais c'est une function a réaliser là. j'ai cru à une simple instruction mysql ou PHP.
Merci pour la réponse. je laisse le sujet ouvert, pour toute eventuelle réponse avec moins d'instruction.
0
elghafoud Messages postés 121 Date d'inscription jeudi 20 février 2003 Statut Membre Dernière intervention 29 avril 2013 18
Modifié par elghafoud le 29/04/2013 à 15:55
La méthode qu'Alain a donné est la plus rapide mais pas besoin du while:
$result = mysql_query("SHOW TABLE STATUS LIKE 'table_name'");
$row = mysql_fetch_array($result);
$nextId = $row['Auto_increment'];
mysql_free_result($result);
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
29 avril 2013 à 21:50
si plusieurs tables dans la base il faut une boucle while pour comparer le nom de la table avec lindex[0]
et récupérer l'autoincrement dans l'index[10]
0
Merci les amis pour la solution

La méthode qu'Alain a donné est la plus rapide mais pas besoin du while:
$result = mysql_query("SHOW TABLE STATUS LIKE 'table_name'");
$row = mysql_fetch_array($result);
$nextId = $row['Auto_increment'];

ceci m'a enormemant aider
0