Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 18/07/2007, 12h46   #1
Futur Membre du Club
 
Inscription : novembre 2006
Messages : 66
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 66
Points : 19
Points : 19
Par défaut [SQL] problème avec update

Bonjour, moi aussi j'ai un petit probleme avec update, mais pas le même que bromlecornu. alors au lieu de polluer son topic, j'ai préféré ouvrir le mien!

voila l'erreur sql, à laquelle j'ai droit :
Citation:
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 '2007-07-19 12:33:44''' at line 1
voici le code de mon formulaire :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
<form method=\"POST\" action=\"edititemprocess.php\" name=\"edititem\">
<td></td>
<TD>
	<SELECT name=\"four\">
		<OPTION VALUE=\"Partner\'s\">Partner's</OPTION>
		<OPTION VALUE=\"Apo\">Apo</OPTION>
		<OPTION VALUE=\"Magne\">Magne</OPTION>
		<OPTION VALUE=\"Dapam\">Dapam</OPTION>
		<OPTION VALUE=\"Ade\">Ade</OPTION>
	</SELECT>
	</TD>
 
<td>
<INPUT type=text name=\"ref\" value=".$donnees['ref'].">
</td>
<td>
<INPUT TYPE=TEXT NAME=\"qte\" MAXLENGTH=2 SIZE=2 Value=".$donnees['qte'].">
</td>
 
<td><center>
<SELECT name=\"vendeur\">
 
    <OPTION VALUE=\"JE\">JE</OPTION>
	<OPTION VALUE=\"SE\">SE</OPTION>
	<OPTION VALUE=\"JY\">JY</OPTION>
	<OPTION VALUE=\"JO\">JO</OPTION>
</SELECT>
</center>
</td>
 
<td>
<INPUT type=text MAXLENGTH=10 SIZE=10 name=\"client\" value=".$donnees['client'].">
 
<input type=\"hidden\" name=\"temps\" value=\"'$temps'\"> 
";?>
 
 
</td>
<td><INPUT TYPE=SUBMIT VALUE="Modifier">
</td>
</form>

jusque là, pas de probleme, les valeurs s'affichent bien dans les champs et je peux les modifier à souhait.

mais quand je clique sur modifier, voila le code que j'exécute :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
$four = $_POST["four"];
$qte = $_POST["qte"];
$vendeur = $_POST["vendeur"];
$client = $_POST["client"];
$ref = $_POST["ref"];
$temps = $_POST["temps"];
 
 
# puis :
 
 
$sqlrequete = " UPDATE commandes SET  ref='$ref', qte='$qte', four='$four', vendeur='$vendeur', client='$client', temps=NOW() WHERE temps='$temps'";
j'ai essayé plusieurs combinaison pour $temps (avec la concaténation, les guillemets, etc, mais rien n'y fait.

visiblement je ne comprends pas.

peut être cela vient du fait que le couple ref et temps est une clé primaire de la table.

peut on modifier une clé primaire ? si la réponse est oui, il faudra alors supprimer le tuple, et en recréer un par derrière....

par avance, merci pour votre aide toujours généreuse.
gostbuster est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/07/2007, 09h04   #2
Modérateur
 
Avatar de Bisûnûrs
 
Josselin
Développeur Web
Inscription : janvier 2004
Messages : 9 050
Détails du profil
Informations personnelles :
Nom : Josselin
Âge : 29
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : janvier 2004
Messages : 9 050
Points : 12 181
Points : 12 181
Je te conseille de lire cet article :

http://pbnaigeon.developpez.com/tuto...phe-guillemet/

En gros, utilise correctement les apostrophes et guillemets :

Code :
$sqlrequete = 'UPDATE commandes SET  ref="'.$ref.'", qte="'.$qte.'", four="'.$four.'", vendeur="'.$vendeur.'", client="'.$client.'", temps=NOW() WHERE temps="'.$temps.'"';
Bisûnûrs est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/07/2007, 09h39   #3
Membre confirmé
 
Avatar de Mogwaï
 
Inscription : mai 2004
Messages : 247
Détails du profil
Informations personnelles :
Âge : 31

Informations forums :
Inscription : mai 2004
Messages : 247
Points : 243
Points : 243
Envoyer un message via MSN à Mogwaï
Code :
1
2
 
<input type=\"hidden\" name=\"temps\" value=\"'$temps'\">
Il y a des quotes en trop autour de $temps

Code :
$temps = $_POST["temps"];
Code :
1
2
 
$sqlrequete = " UPDATE commandes SET  ref='$ref', qte='$qte', four='$four', vendeur='$vendeur', client='$client', temps=NOW() WHERE temps='$temps'";
Fais un echo $sqlrequete pour voir sa tête, tu verras par tes propres yeux l'erreur de syntaxe de la requète causée par ces quotes en trop.
Mogwaï est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h39.


 
 
 
 
Partenaires

Hébergement Web