recupérer l'id auto-incrementé précédement

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 : recupérer l'id auto-incrementé précédement

par Sékiltoyai » 20 août 2007, 20:44

Lorsque tu assignes $sql_cat, tu utilises $id_encours qui n'est pas encore défini. Tu ne peux pas utiliser une variable avant de lui avoir affecté sa valeur.

recupérer l'id auto-incrementé précédement

par cacou » 20 août 2007, 19:04

Bonjour,

je souhaiterais récupèrer l'id généré aprés un insert dans une table. J'ai bien vu qu'il existait une fonction php qui me le permettait mysqli_insert_id().

Je veux récupérer cette id pour le mettre dans une autre table.

logiquement si je fais :
$sql_insert="INSERT INTO produit (
            `id_produit` ,
            `nom` ,
            `prix_ht` ,
            `description` ,
            `quantite_stock` ,
            `url_photo` ,
            `date_insertion` ,
            `en_ligne` ,
            `id_tva`)
            VALUES (NULL , '$prod', '$prix', '$desc' , '$stock', '$url' ,CURRENT_TIMESTAMP , '$enlig', '$tva');";

$sql_cat="INSERT INTO produit_categorie (id_produit,id_categorie) VALUES ('$id_encours','$cat');";

 if ($bundle_resultat =mysqli_query($link,$sql_insert))
    {  
        //retourner le dernier id generer par sql_insert
	//cet id sera id_produit
    	$id_encours=mysqli_insert_id($link);
		//echo $id_encours;
        
        if ($bundle_resultat =mysqli_query($link,$sql_cat))
            {                  
               header('Location: affiche.php');			  
            }                  
       }   
       
        else
            $message .= "l'import c'est mal passé au niveau de la categorie".mysqli_error($link);      
        
        
    }
    else
    {
                $message .= "l'import c'est mal passé".mysqli_error($link);
    }
}

Je récup mes variable via un formulaire.

Lors de mes tests j'ai vérifié que $id_encours était bien égale au id du produit enregistré. Sauf que lorsque je regarde dans ma table produit_categorie il m'ajoute bien id_categorie mais met à 0 l'id_produit.

Je vois pas pourquoi il ne me met pas l'id_produit dans la table. Est- ce que quelqu'un voit?
Merci