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


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

C'est bizarre (et chiant pour les gens qui aiment bien aider) que tu ne dises jamais pourquoi tu veux faire telle ou telle chose, quand tu demandes de l'aide. Tu ne dis jamais à quoi ça te servira.

La solution sent mauvais, on en aurait peut-être de plus adaptée à proposer, si seulement on connaissait l'objectif.


Sephi-Chan


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

(02-06-2010, 11:50 AM)Sephi-Chan a écrit : C'est bizarre (et chiant pour les gens qui aiment bien aider) que tu ne dises jamais pourquoi tu veux faire telle ou telle chose, quand tu demandes de l'aide. Tu ne dis jamais à quoi ça te servira.

La solution sent mauvais, on en aurait peut-être de plus adaptée à proposer, si seulement on connaissait l'objectif.


Sephi-Chan

Connaissant le pourquoi du comment, oui c'est une solution qui sent mauvais, mais c'est plus simple que de se demander pourquoi en général on fait cela après, ou de se dire qu'on a pas cherché...

Utiliser cette solution pour quelqu'un qui voulait éviter les conflits ^^
Ça marche bien tout seul, j'espère pour toi que tu auras pas beaucoup de gens qui postent au même moment.


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

Moi qui penssait avoir justement fait un effort de contexte :p
j'ai dis que je bidouillé un phpbb. Pourquoi au final? je veux bien vous le dire, mais je pense pas que ça aideras:
C'est parce qu'en 30 lignes j'ai put m'assurer d'avoir une sorte de Bug Tracking opérationnel... Quand y a un bug, je suis averti par mail, et selon le sous-forum dans lequel il est posté, je connais la criticité du bug.

Pourquoi j'ai besoin de l'id du post? pour mettre dans le mail en question un lien qui pointe vers le post du gars qui aura déclaré le nouveau bug, rien de plus, rien de moins.

PS: oui Anthor, il se peut que par malchance il y est deux personnes qui post en même temps, mais bon c'est peu probable et n'arrivera pas tout les jours (surtout qu'il n'y aura pas de bug a déclarer de toute manière :p)


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

A mon sens, je pense que tu te casses la tête pour rien.
Si tu reprends les deux première contributions d'Anthor, il explique que :

1 - la valeur renvoyée par mysql_insert_id() est basé sur la connexion active et du coup les actions des autres personnes connectées n'ont aucun impact. Cela veut dire que
- si la connexion A fait une insertion pour l'ID 51
- si la connexion B fait dans la foulée deux insertions pour les ID 52 et 53
Alors, l'appel à mysql_insert_id() pour la connexion A renverra 51 tant que la connexion est maintenue et ce même si l'appel à mysql_insert_id() se fait après que la connexion B ait terminé ses insertions.

2 - En utilisant mysql_insert_id() juste après l'insertion du message, tu es sur d'avoir le bon ID.
Donc, une suite d'instruction du style
Ligne 1 : mysql_query(INSERT INTO ...);
Ligne 2 : select mysql_insert_id();
te permettras de toujours récupérer le bon ID.

Au pire, si la paranoïa te guette, tu encadres le tout dans une transaction histoire de mettre les bretelles en plus de la ceinture.


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

Je dis ptet une bétise, mais s'il veut tracer un éventuel bogue, il cherche peut être à connaître l'id dans lequel devait être enregistré un message qui a échoué. Dans ce cas, il ne pouvait effectuer de mysql_insert_id() vu qu'en cas d'échec : il n'y a pas d'insersion.

J'dis ca, j'dis rien ...


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

Dans ce cas, le log dans un fichier texte est ton meilleur ami.


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

Argo, développe un bug tracker sur phpBB.


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

Roworll: le hic c'est que je suis sur la page "posting.php" et qui appel sans doute 1000 et une autres pages (phpbb^^) et donc du coup le INSERT du post est caché je ne sais où (et j'ai pas la foi pour fouiller tout le code de phpbb, ni la doc juste pour un truc aussi simpliste que l'envoi d'un mail).
Donc j'ai placé l'appel de ma petit fonction a un endroit stratégique par lequel je suis sur qu'il passe juste avant l'insertion d'un post.

Du coup le INSERT INTO est fait qu'après l'appel de ma fonction qui m'envoie un mail. Et donc, comme tu dois maitnenant le comprendre, le mysql_insert_id() se fait normalement après un INSERT et non avant, d'où mon problème...


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

(02-06-2010, 03:18 PM)Roworll a écrit : Dans ce cas, le log dans un fichier texte est ton meilleur ami.

Oui oui, ca n'empêche que s'il veut ses propres infos, il peut aller les chercher.