Récupération d’un ID au moment de l’insertion

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Récupération d’un ID au moment de l’insertion

par dogmongo » 19 janv. 2008, 21:36

oui c'est tout bête ! 8-) j'avais juste à fermer la connexion dans les pages :lol:

par cf357 » 19 janv. 2008, 19:25

Et ne modifie pas une clé en touchant à une variable globale au sein de ta fonction ;)
Maintenant que tu ne fermeras plus ta connexion dans ta fonction execute_requete(), tu pourras te servir normalement de mysql_insert_id() dans ton script ;)

par dogmongo » 19 janv. 2008, 19:22

tu as raison il faut rapidement que je revois ma facon de créer mes requetes.

par Sékiltoyai » 19 janv. 2008, 19:16

Alors, je vais remettre les choses en place : On n'ouvre pas la connexion à chaque requète
T'as une dent contre ton serveur SQL ou quoi ?

Et bien entendu, dans la mesure où c'est le serveur qui renvoie cette information, si on ferme la connexion, on ne peux pas récupérer la dernière id insérée.

par dogmongo » 19 janv. 2008, 19:15

vous avez vu juste , c'est la fonction que j'aurai du améliorer , j'ai passé ma clé en variable global
 global $nb_requete,$Newsid;
merci de votre aide ca ma bien guidé :wink:

par cf357 » 19 janv. 2008, 19:13

Comment est-ce que tu as testé ?
Tu as retourné un tableau contenant l'ID et le résultat de la requête ?

Ou echo mysql_insert_id(); juste apres le query() ?

par dogmongo » 19 janv. 2008, 19:03

c'est ce que je me suis dis , j'ai essayé récupérer la clé dans la fonction même, mais ca n'a rien changé :?

par cf357 » 19 janv. 2008, 18:56

Je ne me suis jamais posé la question, mais je suppose que si tu fermes ta connexion (mysql_close), tu ne pourras pas récupérer le dernier ID avec mysql_insert_id() =)

par dogmongo » 19 janv. 2008, 18:45

ca ne retourne rien du tout , tu soulève justement la question que je me pausais , fonction coupable ou pas ?

la voici :
function execute_requete($query) {
         require("config.php");
         global $nb_requete;
         $nb_requete++;
         $mysql_link = mysql_connect($HOST , $Compte ,$Pass) or die("maintenance!");
         mysql_select_db($SQL_Database, $mysql_link) or die("Maintenance!");
         $mysql_result = mysql_query($query, $mysql_link);
         mysql_close();
         return $mysql_result;
         }

par Sékiltoyai » 19 janv. 2008, 18:38

Oui, j'imaginais bien, mais ca te retourne quoi ?
Et qu'est ce que tu as dans ta fonction ?

par dogmongo » 19 janv. 2008, 18:31

ca ne me retourne pas l'id crée sur la premiere insertion

par Sékiltoyai » 19 janv. 2008, 18:28

Quel est le problème exactement ?

Récupération d’un ID au moment de l’insertion

par dogmongo » 19 janv. 2008, 18:13

Bonjour,

j'ai déjà ouvert un sujet similaire il y à quelques mois mais la le problème est que je ne parviens pas à utiliser la fonction mysql_insert_id(); pour récupérer l'id et le réutiliser juste derrière dans une nouvelle requête.
Je n'ai encore jamais utilisé cette fonction peu être que mon erreur est tout bête mais je voudrais bien comprendre :?

j'ai volontairement réduit le code , c'est mysql_insert_id() le problème !

quelqu'un voit une erreur ?

merci d'avance

// creation d un numero unique par user
//requete 1
$userID = md5(uniqid(rand(), true));
                                
$query = "INSERT INTO table () VALUES()";
$mysql_result = execute_requete($query);
$idtab=mysql_insert_id(); 

//requete 2
$query2 = "INSERT INTO table2 ";
$query2.= "(idtable) VALUES('$idtab')";  
$mysql_result = execute_requete($query2);