JeuWeb - Crée ton jeu par navigateur
Trouver la valeur de l'auto incrément d'une table en particulier - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : Trouver la valeur de l'auto incrément d'une table en particulier (/showthread.php?tid=4863)

Pages : 1 2


Trouver la valeur de l'auto incrément d'une table en particulier - Argorate - 02-06-2010

Bonjour,

J'ai un petit soucis, je suis sur un forum phpbb. j'ai besoin de connaitre l'id du prochain post qui sera créé. Mon problème étant que le mysql_insert_id() renvoi l'id du dernier truc insérer mais dans toute la base de donnée (et donc pas forcement un post)

Donc j'ai besoin de connaitre la valeur de l'auto incrément de la table des "topics".


Pourquoi ne pas faire un SELECT MAX() sur la bonne table?
Parceque sur le forum, on peut supprimer des posts et cela créer des trous dans l'ID.
Exemple: ma base actuel de mon forum, j'ai mon dernier post avec un id = 37 mais si je créer un nouveau sujet, l'id sera égal a 68 car j'ai fais des test avant et du coup le l'ID MAX +1 n'est pas l'ID du prochain post, donc cette solution ne marche pas.

Idem pour se qui est de faire SELECT MAX(LAST_INSERT_ID(topic_id)) FROM `forum_topics` ...

Une suggestion?


RE: Trouver la valeur de l'auto incrément d'une table en particulier - Anthor - 02-06-2010

(02-06-2010, 10:22 AM)Argorate a écrit : J'ai un petit soucis, je suis sur un forum phpbb. j'ai besoin de connaitre l'id du prochain post qui sera créé. Mon problème étant que le mysql_insert_id() renvoi l'id du dernier truc insérer mais dans toute la base de donnée (et donc pas forcement un post)

Citation :These functions are connection-specific, so their return values are not affected by another connection which is also performing inserts.
Donc pour un script donné, la valeur doit être précise.


RE: Trouver la valeur de l'auto incrément d'une table en particulier - Argorate - 02-06-2010

Oui mais c'est une conexion a une BD qui est demandé pas a une table X de cet BD (ce qui change tout en mon cas)


RE: Trouver la valeur de l'auto incrément d'une table en particulier - Anthor - 02-06-2010

Un script PHP se lit du début à la fin, donc si tu catches juste après, il n'y a strictement aucun risque de conflit ^^


RE: Trouver la valeur de l'auto incrément d'une table en particulier - pascal - 02-06-2010

sans le contexte, ça me parait foireux de devoir connaitre le prochain id généré.

Tu peux préciser un peu ton besoin ? donner des détails ?

Normalement on n'a pas besoin de savoir la valeur de cet id, c'est un truc interne à la DB et basta.

A+

Pascal


RE: Trouver la valeur de l'auto incrément d'une table en particulier - Argorate - 02-06-2010

En mon cas, j'aimerais bien le chopper...
J'appel une fonction que j'ai faite a un endroit donné (que je ne peux modifier) et la seul chose que je sais c'est que l'insert est fait après.
Donc je cherche un truc du genre "SELECT auto_increment FROM forum_topic"


RE: Trouver la valeur de l'auto incrément d'une table en particulier - pascal - 02-06-2010

??? ....


RE: Trouver la valeur de l'auto incrément d'une table en particulier - Shudrum - 02-06-2010

Bon, grosso merdo, si tu veux la valeur du prochain auto increment, tu execute cette requête :

Code :
SHOW TABLE STATUS LIKE 'nom_de_ta_table'

Tu récupères la première ligne (fetch) comme d'hab, et ton résultat sera dans :

Code :
$prochain_id = $ton_tableau_resultat["Auto_increment"];



RE: Trouver la valeur de l'auto incrément d'une table en particulier - Argorate - 02-06-2010

Et bin voilà, c'est impec ça Wink

Merci bien Smile


RE: Trouver la valeur de l'auto incrément d'une table en particulier - Shudrum - 02-06-2010

Mais de rien Smile