encore probleme avec mon update

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 : encore probleme avec mon update

par rolusseum » 26 févr. 2009, 02:41

Pour en savoir davantage, essaye de poster dans le forum "sql et base de données"

par stefanelle » 26 févr. 2009, 01:22

donc je ne peux que modifier une table grace a l autre et vice versa ....

par rolusseum » 26 févr. 2009, 00:46

Je viens de réaliser que l'update est une jointure de la table label et la table contenu.:oops:

D'après ce lien
http://www.commentcamarche.net/faq/suj ... -jointure

Peut-être une piste
On ne peut, à priori (à confirmer), que modifier les champs de la première table citée (en l'occurence label) avec les données de la deuxième table (contenu).
Donc SET label.nom_label='2000 RECORDS' ne peut pas aller.

par stefanelle » 26 févr. 2009, 00:05

effectivement il y a un souci autre car j ai mis un echo sur mon $sql3 e il me met


UPDATE label,contenu SET label.nom_label='2000 RECORDS', contenu.reference='disco2008', contenu.artiste='BEAU LANDRY',contenu.album='From four', contenu.format='CD' WHERE contenu.reference = 'disco2008' AND label.nom_label'= '2000 RECORDS'Erreur SQL !
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''= '2000 RECORDS'' at line 3 alors que la il s agit de ma derniere ligne alors que je voulais modifier la premier e....

par @rthur » 25 févr. 2009, 23:56

Bah tu prends les lignes 60 à 70 du fichier modif2.php et tu cherches le problème :)

par rolusseum » 25 févr. 2009, 23:56

J'aurais fais quelque chose du style
C'était du vite fait, juste pour donner un indication.
Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING
Indique une erreur de syntaxe (guillemets, apostrophes,..)

Essaye comme ça, ou éventuellement en parsant les variables $_POST (exemple '$_POST['reference']').
Attention à la clause where, j'ai repris la même que celle du select (pour illustrer le code), vérifie quelle condition doit être nécessaire.
$sql3= "UPDATE contenu SET nom_label=$_POST['nom_label'],reference=$_POST['reference'],artiste=$_POST['artiste'],album=$_POST['album'],format=$_POST['format']WHERE label.id_label = contenu.id_labelcontenu.id_label AND label.nom_label =$_POST['nom_label']";

par stefanelle » 25 févr. 2009, 23:37

voila l erreur qu il me met Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in D:\wamp\www\handsandarms\modif2.php on line 65 :(

par rolusseum » 25 févr. 2009, 23:27

Ben, je trouve la requête update bizzare
$sql3= "UPDATE
label, contenu
SET
nom_label='".$_POST['nom_label']."', reference='".$_POST['reference']."',
artiste='".$_POST['artiste']."',album='".$_POST['album']."',
format='".$_POST['format']."'";
J'aurais fais quelque chose du style
$sql3= "UPDATE contenu SET nom_label='".$_POST['nom_label']."',."
                                           "reference='".$_POST['reference']."',."
                                           "artiste='".$_POST['artiste']."',."
                                            "album='".$_POST['album']."',."
                                            "format='".$_POST['format']."."
           "WHERE label.id_label = contenu.id_label";
	  
$req3= mysql_query($sql3) or die('Erreur SQL !'.$sql2.'<br>'.mysql_error()); 

encore probleme avec mon update

par stefanelle » 25 févr. 2009, 20:13

Bonjour,

ja i deux fichiers php qui me permettent de mettre a jour ma base selon une selection depuis un menu déroulant je sélectionnes mes labels et j affiche mes références artiste album et format selon label choisi mis j ai un problème avec mon update je modifie une valeur et il me modifie toute la table avec la dernière ligne affiché ........

Voila le fichier php

Code : Tout sélectionner

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> <title>Catalogue</title> <link rel="stylesheet" type="text/css" href="style.css"> </head> <body link="#000000" vlink="#FFFFFF" alink="#FFFFFF"> <div id="body"> <?php include ('config.php'); include ('connexion.php'); //nom_label $nom_label = $_POST["nom_label"] ; //reference $reference = $_POST["reference"]; $sql1 = "SELECT contenu.reference, contenu.artiste, contenu.album, contenu.format, label.nom_label FROM contenu, label WHERE label.id_label = contenu.id_label AND label.nom_label = '".$_POST ['nom_label']."' "; $req1= mysql_query($sql1) or die( mysql_error() ) ; $total = mysql_num_rows($req1); if($total!=0) { echo '<form method ="post" action="modif2.php">'; echo '<table>'."\n"; echo '<tr>'; echo '<td ><b><u>Label</u></b></td>'; echo '<td ><b><u>reference</u></b></td>'; echo '<td><b><u>artiste</u></b></td>'; echo '<td><b><u>album</u></b></td>'; echo '<td><b><u>format</u></b></td>'; echo '</tr>'."\n"; while($row = mysql_fetch_array($req1)) { echo '<tr>'; echo '<td><input type="text" name="nom_label" value="'.$row["nom_label"].'"/></td>'; echo '<td><input type="text" name="reference" value="'.$row["reference"].'"/></td>'; echo '<td><input type="text" name="artiste" value="'.$row["artiste"].'"/></td>'; echo '<td><input type="text" name="album" value="'.$row["album"].'"/></td>'; echo '<td><input type="text" name="format" value="'.$row["format"].'"/></td>'; echo '</tr>'."\n"; } echo '</table>'."\n"; echo '<input type="submit" name="btOk" value="Modifier!"/>'; echo '</form>'; if (isset($_POST['btOk'])) { $sql3= "UPDATE label, contenu SET nom_label='".$_POST['nom_label']."', reference='".$_POST['reference']."', artiste='".$_POST['artiste']."',album='".$_POST['album']."', format='".$_POST['format']."'"; $req3= mysql_query($sql3) or die('Erreur SQL !'.$sql2.'<br>'.mysql_error()); if($req3) { echo ("L'insertion a été correctement effectuée") ; } else { echo("L'insertion à échouée") ; } } } ?> </body></html> <?php mysql_close(); ?>
Merci de votre aide