formulaire - insertion de données dans 2 tables non liées
Posté : 26 oct. 2007, 14:58
Bonjour,
J'ai 3 tables :
- disques (avec id_disk)
- tracks (avec id_track)
- disques_tracks liant les 2 tables
J'ai créé un formulaire de modification de saisie de disque, dans lequel apparaissent les titres affiliés à ce disque.
J'aimerai savoir s'il est possible de modifier toutes ces données en même temps, sachant que de mon point de vue, il s'agit en cas de modification d'enregistrer les changements de la table "disques" et de la table "tracks", la table liée n'ayant pas besoin d'être utilisée...
Voici le code du formulaire :
Ca modifie bien les infos du disque, mais pas les tracks du disque...
J'ai 3 tables :
- disques (avec id_disk)
- tracks (avec id_track)
- disques_tracks liant les 2 tables
J'ai créé un formulaire de modification de saisie de disque, dans lequel apparaissent les titres affiliés à ce disque.
J'aimerai savoir s'il est possible de modifier toutes ces données en même temps, sachant que de mon point de vue, il s'agit en cas de modification d'enregistrer les changements de la table "disques" et de la table "tracks", la table liée n'ayant pas besoin d'être utilisée...
Voici le code du formulaire :
<?php
require ("include/connect.php");
$disk_id = $_GET['id'];
echo'<form method="post" action="maj_disk_listing.php">';
//// RECUP DES ELEMENTS DE LA TABLE DISK
$requete = mysql_query ("SELECT disk_id, disk_titre, disk_ref, format_id, disk_annee, artiste_id, label1_id, label2_id, disk_txt1, disk_txt2, disk_sideA, disk_sideB, disk_style, disk_img1, disk_img2, disk_img3, disk_rq, zone_id, news_id, news_order, stock_id FROM disk WHERE disk_id = $disk_id") or die('Erreur : ' . mysql_error());
while ($disk = mysql_fetch_array($requete)){
echo'
<span class="txt10grasBleu">titre </span>
<input type="text" name="titre" value="'.$disk[disk_titre].'" size="50" class="infoDisc">
<br><br>
(...)
// TITRES AFFILIES AU DISQUE
$requete5 = mysql_query ("SELECT t.track_id, t.track_titre, t.track_mp3, a.artiste_id, ad1.artiste_prenom AS artiste_prenom1, ad1.artiste_nom AS artiste_nom1, a.artiste_txt, ad2.artiste_prenom AS artiste_prenom2, ad2.artiste_nom AS artiste_nom2 FROM track t LEFT JOIN artiste a ON (t.artiste_id = a.artiste_id) LEFT JOIN artiste_dico AS ad1 on (a.artiste1_id = ad1.dico_id) LEFT JOIN artiste_dico AS ad2 ON (a.artiste2_id = ad2.dico_id) LEFT JOIN disk_track dt ON (t.track_id = dt.track_id) WHERE disk_id = $disk_id ORDER BY track_titre") or die('Erreur : ' . mysql_error());
echo '<span class="txt10grasBleu">Listing des titres/lien mp3/remixeur </span><br>';
while ($track = mysql_fetch_array($requete5)) {
echo '<input type="hidden" name="track_id" value="'.$track[track_id].'">
<input type="text" name="track_titre" value="'.$track[track_titre].'" size="40" class="infoDisc"> /
<input type="text" name="track_mp3" value="'.$track[track_mp3].'" size="40" class="infoDisc">
<br>';
}
(...)
echo'<input type="hidden" name="id" value="'.$disk_id.'">
<input type="submit" name="modif" value="OK" class="txt10grasBleu">
</form>';
?>
Et dans la page de récupération des données du formulaire :Ca modifie bien les infos du disque, mais pas les tracks du disque...
<?php require ("include/connect.php");
// MODIFS DES DONNEES ENVOYEES : disque
if (isset($modif) && isset($_POST['format']) && isset($_POST['artiste']) && isset($_POST['label1']) && isset($_POST['label2']) && isset($_POST['zone']) && isset($_POST['news']) && isset($_POST['stock'])) {
$requete = mysql_query ("UPDATE disk SET disk_titre = '".$titre."', disk_ref = '".$ref."', format_id = '".$_POST[format]."', disk_annee = '".$annee."', artiste_id = '".$_POST[artiste]."', label1_id = '".$_POST[label1]."', label2_id = '".$_POST[label2]."', disk_txt1 = '".$txt1."', disk_txt2 = '".$txt2."', disk_sideA = '".$sideA."', disk_sideB = '".$sideB."', disk_img1 = '".$img1."', disk_img2 = '".$img2."', disk_img3 = '".$img3."', disk_rq = '".$rq."', zone_id = '".$_POST[zone]."', news_id = '".$_POST[news]."', news_order = '".$news_nb."', stock_id = '".$_POST[stock]."' WHERE disk_id = '".$id."'") or die('Erreur : ' . mysql_error());
// MODIFS DES DONNEES ENVOYEES : tracks
if (isset($modif) && isset($_POST['track_id']) && isset($_POST['track_titre']) && isset($_POST['track_mp3'])) {
$requete = mysql_query ("UPDATE track SET track_titre = '".$_POST[track_titre]."', track_mp3 = '".$_POST[track_mp3]."' WHERE track_id = '".$_POST[track_id]."'") or die('Erreur : ' . mysql_error());
echo "<span class='infoOutofstock'>$titre est modifié.</span><br><br>";
}
}
else{
echo "";
} ?>
Merci de votre réponse.