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

Résolu
ajp55 Messages postés 426 Date d'inscription   Statut Membre Dernière intervention   -  
 oliversoft -
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   Statut Membre Dernière intervention   894
 
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   Statut Membre Dernière intervention   23
 
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   Statut Membre Dernière intervention   79
 
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   Statut Membre Dernière intervention   23
 
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   Statut Membre Dernière intervention   894
 
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   Statut Membre Dernière intervention   23
 
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   Statut Membre Dernière intervention   18
 
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   Statut Membre Dernière intervention   894
 
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
oliversoft
 
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