Rechercher : dans
Par :

[PHP/MySQL] Valeur d'un auto increment

Dernière réponse le 29 sep 2009 à 00:40:08 Taboujr, le 4 sep 2002 à 02:04:40 
 Signaler ce message aux modérateurs

Hello !!
J'ai une page où j'effectue une requête telle que celle ci-dessous :
$req=mysql_query("INSERT INTO table VALUES('',$var1,$var2)");
Le premier champ, je ne lui donne pas de valeur parce qu'il est en auto-increment. Or, plus loin dans ma page, j'ai besoin de cette valeur... et je suis bien embêtée !!
Z'auriez pas une 'tite idée qui traîne pour moi ?
Merci d'avance.

Tabou Junior

1

teebo, le 4 sep 2002 à 08:49:01
  • +1

Si c'est en auto increment, apres l'insertion de ton champs tu demandes la plus grosse valeur du champs...
Pas forcement tres efficace, mais ca marche au moins...

ö,ö
\_/

Répondre à teebo

2

kalamit, le 4 sep 2002 à 09:02:30

Ton auto-increment, il est en index?

Kalamit,
Je ponce donc j'essuie

Répondre à kalamit

3

teebo, le 4 sep 2002 à 09:27:54

Pourquoi tu me demandes a moi? ;-)
A priori si la base est bien faite oui puisque auto increment => clef primaire...

ö,ö
\_/

Répondre à teebo

4

kalamit, le 4 sep 2002 à 09:44:35

Oups, pardon... Je m'a planté...
Enfin toujours est il que, j'ai jamais reussi a retrouvé un index auto-incrémenté dans MySql...
Alors qq'un le fait, ca m'interresse aussi.

Kalamit,
Je ponce donc j'essuie

Répondre à kalamit

5

teebo, le 4 sep 2002 à 09:56:07

Ha, c'est nul ca, l'interet d'un champ auto incremente est justement de l'indexer...

ö,ö
\_/

Répondre à teebo

10

wiwimagique, le 26 fév 2003 à 04:05:48
  • +8

Voila pour toi
"SELECT LAST_INSERT_ID() FROM matable".

Répondre à wiwimagique

6

Taboujr, le 4 sep 2002 à 12:42:53

Oui mon auto-increment est en index.
Mais c'est pas bête l'idée de prendre le plus gros.
J'va faire un truc du genre
SELECT id FROM table WHERE (cond.) ORDER BY id DEC LIMIT 1.
Z'en pensez quoi ? Ca devrait marcher, je pense. Je vous tiens au courant.

Tabou Junior

Répondre à Taboujr

7

Taboujr, le 7 sep 2002 à 00:05:07
  • +6

A cette adresse, http://www.multimania.lycos.fr/webmaster/references/mysql/co­mmandephp3.phtml , j'ai trouvé ça :

Retourne le dernier identifiant généré par un champ de type AUTO_INCREMENT. Cette fonction opère sur la connexion MySQL courante ou sur la connexion spécifiée par link_identifier et retourne le dernier identifiant généré par la réalisation de la dernière fonction INSERT.
Exemple int mysql_insert_id (link_identifier)

J'ai pas eu le temps d'essayer, je vous tiens au courant :-))

Tabou Junior

Répondre à Taboujr

8

kinder.surprise, le 7 sep 2002 à 01:24:46

Sinon en SQL il te suffit de SELECT MAX(le_champ) FROM la_table

kinder.surprise,
le maton du matou

Répondre à kinder.surprise

9

Taboujr, le 25 fév 2003 à 23:05:31

Bon ben ça y est, j'ai testé et comme promis, je vous tiens au courant...

Au niveau du fonctionnement, je n'ai pas vu de différence particulière entre mysql_insert_id() et SELECT MAX(Ch) FROM Tbl, mais au niveau de l'optimisation, c'est différent. En effet, my_sql_insert_id est une fonction php alors que SELECT MAX etc.. nécessite l'exécution d'une nouvelle requête SQL.

Sinon, pour info, j'ai aussi trouvé une fonction sql sympa : LAST_INSERT_ID(). Elle est censé fournir la valeur de l'index du dernier enregistrement de la connexion SQL en cours. Mais ça, j'ai jamais essayé.

Voilà voilà.

TaBou JuNioR, qu'avait promis de vous tenir au courant.
http://membres.lycos.fr/taboujr/

Répondre à Taboujr

11

Kenfack Guy, le 8 jui 2007 à 15:59:01

Salut à toi, si ta cle est autoincrement, cela veut dire qu'on ne la saisie pas.
Je te propose de prendre un ou deux champs et de gérer les enregistrements de manière à ce que ce ou ces champs
soient uniques à chaque enregsitrement. Tu feras la requette de sélection à partir de ces champs et tu retrouvera ton code.

Répondre à Kenfack Guy

12

noufelo, le 7 mar 2008 à 19:50:09

Slt, je suis un debutant en sql, je sais pas comment re-mettre une table en auto increment, je me connecte sur phpmyadmin chez ovh.

merci

Répondre à noufelo

14

David, le 29 sep 2009 à 00:32:02

Voici la requête qui marche sur MySQL, pour récupérer la dernière valeur d'un auto incrément.

SELECT max( LAST_INSERT_ID(cle_primaire)) FROM table

Répondre à David

15

 A.Nonymous, le 29 sep 2009 à 00:40:08
Répondre à A.Nonymous