Requete UPDATE qui se comporte comme INSERT
Résolu
nicusjam
Messages postés
41
Statut
Membre
-
nicusjam Messages postés 41 Statut Membre -
nicusjam Messages postés 41 Statut Membre -
Bonjour,
je sais le titre peut paraitre bizarre mais c'est vraiment ce qui se passe. J'ai un listing de programmes, avec un bouton modifier, qui au onclick recupere les champs correspondants; jusque là tout va bien. Mais ensuite dans php myadmin comme sur mon programme, la ligne qui devait etre changée est toujours là(elle a par exemple l'id 28 ) et les modifications sont apparues dans une nouvelle ligne avec nouvel id (id 29). Je vous balance mon code, n'ayez pas peur, je n'ai pas encore fait le menage .
Merci pour vos eventuelles lumieres quant à ce phenomene particulier.
je sais le titre peut paraitre bizarre mais c'est vraiment ce qui se passe. J'ai un listing de programmes, avec un bouton modifier, qui au onclick recupere les champs correspondants; jusque là tout va bien. Mais ensuite dans php myadmin comme sur mon programme, la ligne qui devait etre changée est toujours là(elle a par exemple l'id 28 ) et les modifications sont apparues dans une nouvelle ligne avec nouvel id (id 29). Je vous balance mon code, n'ayez pas peur, je n'ai pas encore fait le menage .
Merci pour vos eventuelles lumieres quant à ce phenomene particulier.
<head>
<script type="text/javascript" src="http://localhost/DOP/Code DOP/prototype.js"></script>
</head>
<script type="text/javascript" src="fonctions_JS.js"></script>
<form action="div.php" Method="POST" name="form_programme">
<?php
// Recuperation de l'id envoyé en parametre de la page listing_programme.php à l'aide de GET
$num=$_GET['id_programme'];
echo $num;
// Connexion à MySQL
mysql_connect("localhost", "root");
// Sélection de la base
mysql_select_db("dop");
// Requête SQL d'apres l'id concerné et le programme choisi
$sql = 'SELECT * FROM programme WHERE id_programme = '.$num;
// on lance la requête (mysql_query) et on impose un message d'erreur si la requête ne se passe pas bien (or die)
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
while($row= mysql_fetch_assoc($req)){
$nom_programme =$row["nom_programme"];
$responsable_programme =$row["responsable_programme"];
$commentaire_programme= $row["commentaire_programme"];
$chemin_fichier_programme =$row["chemin_fichier_programme"];
$id_thematique =$row["id_thematique"];
$id_op =$row["id_op"];
$row["id_op"]=$id_op;
}
?>
<table style="empty-cells:collapse" border="0" align="center" cellpadding="5" cellspacing="2" bgcolor="#39A641" class="Style1">
<!--//////////////////////////////////// Saisie du programme ///////////////////////////////////:-->
<tr id="" style="bgcolor:#39A641; font-color:#ffffff;">
<td><span class="Style4"><strong>Saisie d'un programme </strong></span>
</strong></td>
</tr>
<tr bgcolor="#FFFFFF">
<td width="100" height="40" align="left"><strong>Thematique</strong></td>
<td width="0" height="40"bgcolor="#FADCE9">
<!--/////// Select box thematique //////-->
<select name="id_thematique" class="Style1">
<?php
$sql2='SELECT * FROM thematique' ;
// on lance la requête (mysql_query) et on impose un message d'erreur si la requête ne se passe pas bien (or die)
$req2 = mysql_query($sql2) or die('Erreur SQL !<br />'.$sql2.'<br />'.mysql_error());
while($row2=mysql_fetch_array($req2)){
$ligne= $row2 ['id_thematique'];
$lib_ligne= $row2 ['nom_thematique'];
$txt_select='';
if ( $ligne== $id_thematique){
$txt_select='selected';
}
echo '<option value="'.$ligne.'" '.$txt_select.'>'.$lib_ligne.'</option>';
}
?>
</select>
<!--////// Fin Select box thematique //////-->
</td>
</tr> ;
<tr id="" style="bgcolor:#39A641; font-color:#ffffff;">
<td width="150" height="40" align="left"><strong>Nom du programme</strong></td>
<td width="10" height="40" bgcolor="#FADCE9">
<input class="Style1" type="text" value="<?php echo $nom_programme ?>" name="nom_programme" size="40" maxlength="80"/>
</td>
</tr>
<tr bgcolor="#FFFFFF">
<td width="150" height="40" align="left"><strong>Responsable du programme </strong></td>
<td width="0" height="40" bgcolor="#F7CADD">
<input class="Style1" type="text" value="<?php echo $responsable_programme ?>" name="responsable_programme" size="40" maxlength="50" />
<!--/////// Select box op //////-->
<select name="id_op" class="Style1">
<?php
$sql3='SELECT * FROM op O, programme P WHERE o.id_programme = P.id_programme' ;
// on lance la requête (mysql_query) et on impose un message d'erreur si la requête ne se passe pas bien (or die)
$req3 = mysql_query($sql3) or die('Erreur SQL !<br />'.$sql3.'<br />'.mysql_error());
while($row3=mysql_fetch_array($req3)){
$ligne3= $row3 ['id_op'];
$lib_ligne3= $row3 ['niveau_op'];
$txt_select3='';
if ( $ligne3== $id_op){
$txt_select3='selected';
}
echo '<option value="'.$ligne3.'" '.$txt_select3.'>'.$lib_ligne3.'</option>';
}
?>
</select>
<!--/////// Fin Select box op //////-->
</tr>
</td>
</tr>
<!-- ////////////////////////////////// Commentaire et fichier lie, et Validation Submit //////////////////////////////////// -->
<tr bgcolor="#FFFFFF">
<td width="150" align="left"><strong>Commentaire: </strong></td>
<td width="10" height="100" bgcolor="#FADCE9">
<textarea name="commentaire_programme" cols="90" rows="5" class="Style1"><?php echo $commentaire_programme ?></textarea></td>
</tr>
<tr>
<td width="150" height="50" align="left"bgcolor="white"><strong>Lier un fichier: </strong></td>
<td width="0" height="40" bgcolor="#F7CADD"><?php echo $chemin_fichier_programme ?>
<input value="" name="chemin_fichier_programme" type="file" class="Style1" size="50">
<?php echo $chemin_fichier_programme ?>
</input>
</td>
</tr>
<tr bgcolor="#FFFFFF">
<td colspan="2" align="center" bgcolor="#FADCE9">
<label>
<input type="submit" value="Enregistrer" />
</label>
</td>
</tr>
</table>
</form>
<!--////////////////////////////onClick="javascript:insertProg()" /////////////////////////////////////:-->
<?php
$num=$_GET['id_programme'];
$num=$_POST['.id_programme.'];
$nom_programme=$_POST['.nom_programme.'];
$responsable_programme=$_POST['.responsable_programme.'];
$commentaire_programme=$_POST['.commentaire_programme.'];
$chemin_fichier_programme=$_POST['.chemin_fichier_programme.'];
$id_thematique=$_POST['.id_thematique.'];
$id_op=$_POST['.id_op.'];
//Requete UPDATE pour modifier les renseignements dans la table
mysql_query("UPDATE programme
SET nom_programme='".mysql_escape_string($_POST['nom_programme'])."',
responsable_programme='".mysql_escape_string($_POST['responsable_programme'])."',
commentaire_programme='".mysql_escape_string($_POST['commentaire_programme'])."',
chemin_fichier_programme='".mysql_escape_string($_POST['chemin_fichier_programme'])."',
id_thematique='".mysql_escape_string($_POST['id_thematique'])."',
id_op='".mysql_escape_string($_POST['id_op'])."'
WHERE id_programme='".$num."'") ;
//Récupération des résultats de la requête
$query_results = mysql_query($query);
if($query_results ==1 )
{echo "ok ok";}
else{
echo "Ajout impossible : ".mysql_errno()." : ".mysql_error()."<br />";}
// Déconnexion de la base de donnees
mysql_close();
?>
<?php include"footer.php";?>
A voir également:
- Requete UPDATE qui se comporte comme INSERT
- Touche insert - Guide
- Windows update bloqué - Guide
- Winget update - Guide
- Asus live update - Télécharger - Utilitaires
- Disk boot failure insert system disk and press enter - Guide
4 réponses
Bonjour
cette partie du code est un petit peu louche
$num=$_GET['id_programme'];
$num=$_POST['.id_programme.'];
d'abord $num prend la valeur en $_GET puis apres elle prend celle en $_POST... c'est du GET ou du POST ? parceque dans ton num si ça ce trouve il n'y a rien au final d'autant plus que tu met des point je sais pas trop pourquoi ?
cette partie du code est un petit peu louche
$num=$_GET['id_programme'];
$num=$_POST['.id_programme.'];
d'abord $num prend la valeur en $_GET puis apres elle prend celle en $_POST... c'est du GET ou du POST ? parceque dans ton num si ça ce trouve il n'y a rien au final d'autant plus que tu met des point je sais pas trop pourquoi ?
nicusjam
Messages postés
41
Statut
Membre
11
oui ca fait partie des tests que je fais, j'avoue que je suis debutant et brouillon. mais meme en enlevant le $num=$_POST['.id_programme.']; j'ai le meme resultat , a ceci pres qu'en plus de la ligne qui reprend les infos de la ligne d'avant et prend une id +1, j'ai aussi une ligne vide qui apparait
nicusjam
Messages postés
41
Statut
Membre
11
hé au fait, MERCI Mimiste pour ta reponse, c'est sympa de prendre un peu de temps pour les autres !
Donc ton action quand tu clic sur le bouton c'est div.php
dans cette page tu essai de recuperer
$num=$_GET['id_programme'];
Mais dans ton formulaire nulle part tu n'envoi quoi que ce soit en GET
ce $_GET['id_programme'] d'ou sort t'il ?
dans cette page tu essai de recuperer
$num=$_GET['id_programme'];
Mais dans ton formulaire nulle part tu n'envoi quoi que ce soit en GET
ce $_GET['id_programme'] d'ou sort t'il ?
en fait je recupere d'un autre fichier mon id programme avec
$resultat5 est mon id_programme dans mon fichier listing. je renvoie l'id et je le recupere en GET avec $num. j'ai fais des echo et c'est bien ca ca fonctionne
Je m'en sers deux fois en plus de $num, donc y'avait interet que ca soit ca . mais là je seche un peu ...
<INPUT TYPE="button" value="M" class="boutonModifier" onClick="window.location=\'programme_modif.php?id_programme='.$resultat5.'\' "> </input>';
$resultat5 est mon id_programme dans mon fichier listing. je renvoie l'id et je le recupere en GET avec $num. j'ai fais des echo et c'est bien ca ca fonctionne
Je m'en sers deux fois en plus de $num, donc y'avait interet que ca soit ca . mais là je seche un peu ...
Oui je suis d'accord, mais quand tu submit ton formulaire, tu ne l'envoi pas la variable $num donc elle ne peux pas etre recupérée sur ta nouvelle page (celle qui fais l'update)
Bonjoir à tous.
Mon probleme est resolu j'ai en fait demantele tout mon code et tout recommencé etape par etape.
Et ca fonctionne. N'empeche qu'un Update se comportant comme un Insert ca interpelle tellement c'est pas naturel. Merci à toi Mimiste pour ton aide et ton temps. Merci à cette communauté de dev' de tous poils et autres olibrius, ca fait avancer d'avoir du support ! 'rci !
Mon probleme est resolu j'ai en fait demantele tout mon code et tout recommencé etape par etape.
Et ca fonctionne. N'empeche qu'un Update se comportant comme un Insert ca interpelle tellement c'est pas naturel. Merci à toi Mimiste pour ton aide et ton temps. Merci à cette communauté de dev' de tous poils et autres olibrius, ca fait avancer d'avoir du support ! 'rci !