Résolu, voir dernières questions sur mon cas en fin de page. Merci
Etant donné que celà traite exactement du même sujet je ne recréer pas un post.
Voilà, je fait un mysql_insert_id(); que je place dans une variable. Je l'incert dans ma requete pour remplire ma table intermédiaire. Jusque là tout va bien.
Mais j'ai une autre table intermédiaire à remplire avec cette variable, bien sur celà marche sans problème mais ce qui coince c'est que j'ai également une autre variable qui reprend le dernière id d'un autre insert dans une autre table.
Donc...je fait un INSERT suivi d'un mysql_insert_id(); que je place dans une variable. Ensuite je refait un autre INSERT et je refait mysql_insert_id(); que je place dans une variable.
Mais il ne me prend que le premier (dans la bonne variable) mais la seconde variable qui reprend le second mysql_insert_id(); est vide (0).
Quel est le problème? On ne peut faire deux fois un mysql_insert_id();? Si c'est le cas, avez vous une solutions?
Explication du rôle de la page: J'ajoute une oeuvre en envoyant un titre, une légende, une date, 3 images. Cette oeuvre est liée à une catégorie et à une expo. Cette dernière étant soit sélectionable via un Select soit ajoutable via un input de type text, d'où l'INSERT et la récupération du dernièr ID de expo.
Je vous donne le bout de code:
Le première mysql_insert_id(); se trouve dans:
//ADD Table Intermédiaire pour la Catégorie
et le second se trouve dans:
//ADD Table Intermédiaire pour l'Expo (projet)
//ADD Oeuvre
$oeuvre_name = trim($_POST['oeuvre_name']);
$legende = trim($_POST['legende']);
$pub = trim($_POST['pubList']);
$date = trim($_POST['date']);
if(empty($dest_fichier_detail) && empty($dest_fichier_detail2))
{
$query_add_oeuvre = "INSERT INTO t_oeuvre VALUES ('', '$oeuvre_name', '$dest_fichier_image', '$legende', '', '', '$date', '$pub')";
}
elseif (isset($dest_fichier_detail) && empty($dest_fichier_detail2))
{
$query_add_oeuvre = "INSERT INTO t_oeuvre VALUES ('', '$oeuvre_name', '$dest_fichier_image', '$legende', '$dest_fichier_detail', '', '$date', '$pub')";
}
elseif (empty($dest_fichier_detail) && isset($dest_fichier_detail2))
{
$query_add_oeuvre = "INSERT INTO t_oeuvre VALUES ('', '$oeuvre_name', '$dest_fichier_image', '$legende', '', '$dest_fichier_detail2', '$date', '$pub')";
}
else
{
$query_add_oeuvre = "INSERT INTO t_oeuvre VALUES ('', '$oeuvre_name', '$dest_fichier_image', '$legende', '$dest_fichier_detail', '$dest_fichier_detail2', '$date', '$pub')";
}
mysql_query($query_add_oeuvre) or die("Ajout d'oeuvre : ".mysql_error());
//ADD Table Intermédiaire pour la Catégorie
$cat = trim($_POST['catId']);
$last_oeuvre = mysql_insert_id();
$query_add_int_cat = "INSERT INTO t_oeuvre_cat VALUES ('$cat', '$last_oeuvre')";
mysql_query($query_add_int_cat) or die("Ajout d'oeuvre table intermédiaire : ".mysql_error());
//ADD Table Intermédiaire pour l'Expo (projet)
if (isset($_POST['expoList']))
{
$expoList = trim($_POST['expoList']);
$query_add_int_expo = "INSERT INTO t_oeuvre_expo VALUES ('$expoList', '$last_oeuvre')";
mysql_query($query_add_int_expo) or die("Ajout d'oeuvre table intermédiaire : ".mysql_error());
}
elseif (isset($_POST['expo_add']))
{
$expo_add = trim($_POST['expo_add']);
$query_new_expo = "INSERT INTO t_expo VALUE ('', '$expo_add')";
mysql_query($query_new_expo) or die("Ajout d'oeuvre table intermédiaire : ".mysql_error());
$last_expo = mysql_insert_id();
$query_add_int_expo = "INSERT INTO t_oeuvre_expo VALUES ('$last_expo', '$last_oeuvre')";
mysql_query($query_add_int_expo) or die("Ajout d'oeuvre table intermédiaire : ".mysql_error());
}
Merci d'avance.Kevin
ps: j'espère que mes explications sont complètes et compréhensibles.