Sql copier valeur d'un champ id ver suatre ta

Résolu/Fermé
stefanelle - 23 févr. 2009 à 10:49
 stefanelle - 23 févr. 2009 à 11:33
Bonjour,

j ai crée un formulaire permettant d inserez des données dans deux tables. et d'afficher le résultat grâce a un select sur les deux tables.

ma premiere table label à un champ id_label en auto increment

Ma deuxieme table contenu à un champ id_label qui n'est pas en auto increment

comment faire en sorte que quand j insere des valeurs via mon formaulaire dans es tables par exemple label1, reference11 artiste 1 ... l id_label de la table label se copie vers l id_label de la table contenu ?

J espere etre clair ...

je vous joins mon fichier php qui traite linsertion

Merci

<?php

include ('config.php');
include ('connexion.php');

//récupération des valeurs des champs:
//label:
$nom_label = $_POST["label"] ;
//reference:
$reference = $_POST["reference"] ;
//artiste:
$artiste = $_POST["artiste"] ;
//album:
$album = $_POST["album"] ;
//format:
$format = $_POST["format"] ;


//création de la requête SQL:
$sql1 = "INSERT INTO label (nom_label)
VALUES ( '$nom_label') " ;
$sql2 = "INSERT INTO contenu (reference, artiste, album, format)
VALUES ( '$reference', '$artiste','$album', '$format') " ;



//exécution de la requête SQL:
$requete = mysql_query($sql1) or die( mysql_error() ) ;
$requete = mysql_query($sql2) or die( mysql_error() ) ;

//affichage des résultats, pour savoir si l'insertion a marchée:
if($requete)
{
echo ("L'insertion a été correctement effectuée") ;
}
else
{
echo("L'insertion à échouée") ;
}
?>
A voir également:

5 réponses

Mikey_UFC Messages postés 312 Date d'inscription jeudi 8 mars 2007 Statut Membre Dernière intervention 2 août 2010 1
23 févr. 2009 à 10:57
Salut,

Tu rajoutes après ton 1er mysql_query :
$id_label_insere = mysql_insert_id();

ce qui donnerait :
$sql1 = "INSERT INTO label (nom_label) VALUES ( '$nom_label') " ;
$requete = mysql_query($sql1) or die( mysql_error() ) ;
$id_label_insere = mysql_insert_id();

$sql2 = "INSERT INTO contenu (reference, artiste, album, format, id_label) VALUES ( '$reference', '$artiste','$album', '$format', $id_label_insere) " ;
$requete = mysql_query($sql2) or die( mysql_error() ) ;
0
merci de ta reponse mais a ne fonctionne aps peut etre que j ai fait une erreur ...


<?php

include ('config.php');
include ('connexion.php');

//récupération des valeurs des champs:
//label:
$nom_label = $_POST["label"] ;
//reference:
$reference = $_POST["reference"] ;
//artiste:
$artiste = $_POST["artiste"] ;
//album:
$album = $_POST["album"] ;
//format:
$format = $_POST["format"] ;


//création de la requête SQL:
$sql1 = "INSERT INTO label (nom_label)
VALUES ( '$nom_label') "
$id_label_insere = mysql_insert_id();
;
$sql2 = "INSERT INTO contenu (reference, artiste, album, format)
VALUES ( '$reference', '$artiste','$album', '$format') " ;



//exécution de la requête SQL:
$requete = mysql_query($sql1) or die( mysql_error() ) ;
$requete = mysql_query($sql2) or die( mysql_error() ) ;

//affichage des résultats, pour savoir si l'insertion a marchée:
if($requete)
{
echo ("L'insertion a été correctement effectuée") ;
}
else
{
echo("L'insertion à échouée") ;
}
?>
0
Psyk974 Messages postés 551 Date d'inscription lundi 2 février 2009 Statut Membre Dernière intervention 30 mars 2010 51 > stefanelle
23 févr. 2009 à 11:08
Tu n'as pas modifié ta deuxième requête
0
Psyk974 Messages postés 551 Date d'inscription lundi 2 février 2009 Statut Membre Dernière intervention 30 mars 2010 51
23 févr. 2009 à 11:01
//création de la requête SQL:
$sql1 = "INSERT INTO label (nom_label)
VALUES ( '$nom_label') " ;
$max_id=mysql_insert_id();
$sql2 = "INSERT INTO contenu (id_label, reference, artiste, album, format)
VALUES ($max_id, '$reference', '$artiste','$album', '$format') " ;
0
merci on avance car il m a affecte un id au id_label de la table contenu mais pas le bon ...

id_label table label = 253

id_label table contenu = 0
0
Psyk974 Messages postés 551 Date d'inscription lundi 2 février 2009 Statut Membre Dernière intervention 30 mars 2010 51 > stefanelle
23 févr. 2009 à 11:14
Fais un echo sur ta variable $max_id on verra ce qu'il sort comme résultat
0
voila ce qu il me met ....

0L'insertion a été correctement effectuée

il m affiche un 0
0
Mikey_UFC Messages postés 312 Date d'inscription jeudi 8 mars 2007 Statut Membre Dernière intervention 2 août 2010 1
23 févr. 2009 à 11:19
Il faut faire le mysql_insert_id(); après le mysql_query(); ( ce qui n'était pas le cas la 1ère fois ).

Fais attention au nom de variable et mais le même partout soit : $id_label_insere ou $max_id ou ce que tu veux d'ailleurs.
0
c est a dire en dessous des deux $sql desole je tatonne en php
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Mikey_UFC Messages postés 312 Date d'inscription jeudi 8 mars 2007 Statut Membre Dernière intervention 2 août 2010 1
23 févr. 2009 à 11:29
Non, comme dans le 1er code que je t'ai donné. fait un copier coller par exemple et dis-moi si ça marche mieux.
$sql1 = "INSERT INTO label (nom_label)
 VALUES ( '$nom_label') " ;
$requete = mysql_query($sql1) or die( mysql_error() ) ;
$id_label_insere = mysql_insert_id(); // => après insertion dans la base, on récupère l'identifiant.

$sql2 = "INSERT INTO contenu (reference, artiste, album, format, id_label)
 VALUES ( '$reference', '$artiste','$album', '$format', $id_label_insere) " ;
$requete = mysql_query($sql2) or die( mysql_error() ) ;
0
super mickey tu viens de faire un heureux :-) ca amrche tres bien

je connaissais pas cette syntaxe mysql_insert_id() je l amet dans un coin de ma tete :-)
0