mdr, bien sur :)
dsl...
Version imprimable
Ecoute, je t'assure que j'ai écumé le web... Seulement j'ai du tellement essayé de trucs et de machins que parfois je dois faire n'importe quoi.
La preuve, le WHERE je l'avais déjà mis (pour le 're'virer)...
Bref, et là je vais m'arracher les cheveux parce que ca ne marche toujours pas.
Code:
1
2 $query_else = "UPDATE otl_formation SET (module='".$module."', formateur='".$formateur."', note='".$note."', description='".$description."', date='".$date."') WHERE module='".$module."' AND collab='".$collab."'";
Tu l'as testé ta requête sous phpmyadmin ?
Voici la réponse :
Erreur
requête SQL:
"UPDATE otl_formation SET (module='".$module. "', formateur='".$formateur. "', note='".$note. "', description='".$description. "', date='".$date. "') WHERE module='".$module. "' AND collab='".$collab. "'\""
MySQL a répondu:
#1064 - 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 '"UPDATE otl_formation SET (module='".$module."', formateur='".$formateur."', not' at line 1
Maintenant je ne suis pas sur de copier/coller directement mon code (je n'ai jamais fais cette opé)
Merci à toi.
Essaie :
Code:
1
2 $requpdate = mysql_query('UPDATE otl_formation SET (module="'.$module.'", formateur="'.$formateur.'", note="'.$note.'", description="'.$description.'", date="'.$date.'") WHERE module="'.$module.'" AND collab="'.$collab.'";');
Moi, je peux pas trop vous aider car je suis sous postgresql :lol::lol:
J'dois bien être le seul dans la région :(
Fais un :
et écris nous le message si tu en as un.Code:
1
2 $requpdate = mysql_query(larequetequejetaifilée) or die(mysql_error());
Toujours pareil et aucun message d'erreur, je met le code au cas ou :
Est-ce que ca peut venir de la structure de ma BDD ???Code:
1
2 $requpdate = mysql_query('UPDATE otl_formation SET (module="'.$module.'", formateur="'.$formateur.'", note="'.$note.'", description="'.$description.'", date="'.$date.'") WHERE module="'.$module.'" AND collab="'.$collab.'";') or die(mysql_error());;
EDIT :
Erreur de manip j'ai bien un message d'erreur :
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 '(module="Stability", formateur="Alexandre PIARD", note="", description="bob", da' at line 1
C'était pas l'update qui fonctionnait pas ?
Essayes de faire la manip sans le champ 'date', ya toujours des pbs avec les dates dans les requêtes SQL
Hum, essaie de voir si tu ne ferais pas une entrée (variable) avec des ' ou un / ou \ qui foirerait les concaténations.
Fais un echo de chacune de tes variables puis un echo de la requête, pour voir si tu obtiens bien ce que tu souhaites.
Quant à moi > week-end !
J'ai virer la date dans la requète du UPDATE, idem...
test elseYou have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(module="Bolted Joint", formateur="Alexandre PIARD", note="", description="toto"' at line 1
Voilà comment je traite mes variables avant les requètes SQL :
bon week, je pense que je ne vais pas tarder aussi, j'en ai plein la tronche...Code:
1
2
3
4
5
6
7
8 $collab = htmlspecialchars($_POST['collab']); $session = htmlspecialchars($_POST['session']); $module = htmlspecialchars($_POST['module']); $formateur = htmlspecialchars($_POST['formateur']); $note = htmlspecialchars($_POST['note']); $description = addslashes(htmlspecialchars($_POST['description'])); $date = date('Y-m-d H:i:s');
Bon j'pars aussi,
Essayes de faire un maximum d'echo comme dit baggie parceque qd même un pb d'update c qd meme fort (ou alors ça vient de ta clé ????)
Bon W.E
Je sais pas si c'est à cause de ça mais me semble que les parenthèses après SET sont de trop.
Code:UPDATE table SET champ1=valeur1, champ2=valeur2, champ3=valeur3 WHERE cle1=valeur4 AND cle2=valeur5
Bonsoir,
J'ai regardé par curiosité le post de @GoodWear ce soir et,
Ya plutôt un pb de serveur non!
+1 pour les parenthéses mais chez moi ça marche bien comme celà 8O
Que dis je c bête, vue que la requête pour le if else marche bien,
c tordu comme histoire,
Allez la semaine prochaine ira mieux, c sûrement bête comme truc :(
Salut
Moi en essayant ce que tu ecris je te donne ceci qui fonctionne mais j'ai pas tes fichiers alors...mais envois moi ta table et les fichiers qui sont avec et je te le fais.Code:
1
2
3
4
5
6
7
8
9
10
11
12
13 <?php $module = "Avion"; $formateur = "Luc"; $note = "10"; $description = "Il est très bon ce mec"; $date = "20/12/2009"; $collab = "2"; $db = mysql_connect("localhost","root",""); mysql_select_db("test_olt",$db); $requpdate = mysql_query("UPDATE otl_formation SET module='$module', formateur='$formateur', note='$note', description='$description', date='$date' WHERE module='$module' AND collab='$collab'") or die (mysql_error()); $res = mysql_query($requpdate); ?>
c'est pas sécurisé mais c'est deja pour trouver ce problème.
Sur plusieurs posts on voit que ta variable $note est enregistrée comme ceci : ''
Fais un echo de cette variable et dis nous ce que tu obtiens.
Salut,
- Bon j'ai regardé le UPDATE avec Mysql, c vrai que les parenthèses peuvent être enlevées (même si chez moi ça marche avec).
- Sinon, tu sais que le cas if marche (ya bien insertion), le cas else merdouille ! ALORS:
1) Pourquoi n'essayes tu pas un UPDATE très simple avec le champ info par ex
2) Pourquoi tu update module alors que c ta comparaison, ya pas besoin de toucher à ce champs
3) Du coup, session n'est pas dans le update, pourquoi?
4) Tu peux ajouter l'option IGNORE si c un pb de clés, :roll:
5) Datetime de sql correspond à ton format date();
Au pire fin de matiné, j'implémenterais ton code dans mon éditeur (et même si je suis en Postgres) je l'aurais .... :P
Bonjour à tous et bienvenue sur les ondes Forum "Je suis un gros boulet" :)
Bon apparemment pas tant que ca mais quand même...
J'espère que vous avez tous passé un excellent Week-end et merci pour vos posts je ne m'attendais pas à autant de retour.
Donc j'essaye tout ca et je reviens pour vous en redonner une couche.
:ccool:
Ben au lieu d'avoir une note, il y a des quotes : ''.
Mais peut-être que tu n'avais saisi aucun variable.Citation:
'(module="Stability", formateur="Alexandre PIARD", note="", description="bob", da' at line 1
Comme l'a dit Fench, essaye de faire un update sur le premier champ uniquement. Si ça fonctionne, fais un update sur le premier ET le second champ, puis premier/second/troisième champ etc ...
Dès que tu as une erreur, c'est que ton champ doit poser problème sûrement.
Alors, dans l'ordre :
1/ Je viens d'essayer ca :
ET ... Idem...Code:
1
2 $requpdate = mysql_query('UPDATE otl_formation SET (description="'.$description.'") WHERE module="'.$module.'" AND collab="'.$collab.'";') or die(mysql_error());
Message 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 '(description="toto") WHERE module="Bolted Joint" AND collab="Nom Prénom"' at line 1
2/ Effectivement ca ne sert à rien...
3/ Parce qu'il n'a rien à y faire, comme Module puisque on ce basse sur ca pour faire une sélection précise de ce qu'il y'a à modifier...
5/ C'est à dire que SQL appliquera de lui même une date et une heure ???
Ouais mais si tu mets des simple quote dans la requête comme baggie t'a dis, faut bien l'écrire partout, sinon double quote ....
Je mettrais:Code:
1
2 'UPDATE otl_formation SET (description="'.$description <- ya un truc qui cloche non ! :mouarf:
Mets ta raquête dans une variable et fais un echo pour voir si elle est bien écrite !!!!!!Code:
1
2 "UPDATE otl_formation SET (description="'.$description
pffffffffffffff, en fait c'était toute ma ligne qui était pourris (j'avais une parenthèse mal placé en fin de ligne aussi).
Bon, donc je viens de faire une correction du code, une nouvelle entrée, ca fonctionne, une modif entre dans le else mais ne modifi pas la BDD.
Array
(
[session] => Session 1
[module] => Repairs
[formateur] => Prénom NOM
[description] => tyty
[collab] => Prénom NOM
)
La nouvelle ligne :
Sinon j'avais bien vu la ligne de baggie mais sèrieux j'avais pas vu l'erreur...Code:
1
2 $requpdate = mysql_query("UPDATE otl_formation SET (description='".$description."') WHERE module='".$module."' AND collab='".$collab."'");
C'est vraiment un énormissime détail et je ne pense pas que ça change quoi que ce soit mais ...
Rajoute le ';' à la fin de ta requête :
Dans la table otl_formation y'a bien les deux champs module et collab c'est sûr ?Code:AND collab='".$collab."';");
OUUULA
@baggie: tu as fait quoi ce W.E ;);)Citation:
AND collab='".$collab."';");
@GoodWear: mets ta chaine dans une variable et affichage LA.
Au passage j'ai ça, ça marche aussi chez moi :scarymov:
Code:
1
2
3 $query = "UPDATE otl_formation SET description='$description' WHERE module='$module' AND collab='$collab'"; $requpdate = mysql_query($query);
Euh je plaide coupable, le point-virgule était là et je l'ai viré... J'avais aussi mon SQL or die qui était mal placé. Bon en tout cas ca ne change rien.
Pour la table otl_formation :
ID int(10) UNSIGNED Non auto_increment
collab varchar(60) utf8_unicode_ci Non
session varchar(30) utf8_general_ci Non
module char(30) utf8_unicode_ci Non
formateur char(20) utf8_unicode_ci Non
note tinyint(3) UNSIGNED Non
description text utf8_unicode_ci Non
date datetime Non
la table des collabs :
ID int(10) UNSIGNED Non auto_increment
agence varchar(3) utf8_general_ci Non
prenom varchar(50) utf8_general_ci Non
nom varchar(50) utf8_general_ci Non
mail varchar(100) utf8_general_ci Non
telephone varchar(10) utf8_general_ci Non
date datetime Non
la table des formateurs :
ID int(10) UNSIGNED Non auto_increment
agence varchar(3) utf8_general_ci Non
prenom varchar(50) utf8_general_ci Non
nom varchar(50) utf8_general_ci Non
mail varchar(100) utf8_general_ci Non
telephone varchar(10) utf8_general_ci Non
date datetime Non
des modules :
ID int(10) UNSIGNED Non auto_increment
module varchar(40) utf8_general_ci Non
date datetime Non
et des Sessions :
ID int(10) UNSIGNED Non auto_increment
session varchar(30) utf8_general_ci Non
date datetime Non
Fais ceci :
Et copie nous le résultat du echo.Code:
1
2
3 $requpdate = "UPDATE otl_formation SET (description='".$description."') WHERE module='".$module."' AND collab='".$collab."';"; echo 'requete : '.$requpdate;
On va bien le trouver ce problème ! :aie:
Et bah voila :ccool:
Bien joué Fench ^^
Au passage petite question, dans une BDD quand on a un champ ID auto-incrémenté, on enregistre des données, donc ca les rajoutes le ID passe à 1 puis 2 etc...
Je suis à 10, un nouveau enregistrement, je passe à 11, je l'efface et j'en ajoute un je passe donc à 12 et je me retrouve avec un 'trou' au milieu.
Est-ce qu'il y'a un moyen pour ré-affecter ces champs ID ???
Autre question, je vous ais montré l'initialisation de mes variables un peu plus haut, je voulais savoir si d'un point de vue sécurité si c'était bon ou pas...
Et encore merci pour votre soutien :ccool:Code:
1
2
3
4
5
6
7 $collab = htmlspecialchars($_POST['collab']); $session = htmlspecialchars($_POST['session']); $module = htmlspecialchars($_POST['module']); $formateur = htmlspecialchars($_POST['formateur']); $note = htmlspecialchars($_POST['note']); $description = addslashes(htmlspecialchars($_POST['description']));
COOOOOOLLLLLLL,
Enfin, (quoique ce matin fût la bonne :):):)).
Parcontre ce codeet ce code marche aussiCode:
1
2
3 $query = "UPDATE otl_formation SET description='$description' WHERE module='$module' AND collab='$collab'"; $requpdate = mysql_query($query);
J'ai même mélangé les deux 8OCode:
1
2
3 $query = "UPDATE otl_formation SET description='".$description.'" WHERE module='$module' AND collab='$collab'"; $requpdate = mysql_query($query);
Bref, j'dois avoir un interpréteur cool pas comme le tiens GoodWear :calim2:
Bonne journée à tous les deux et A+
EDIT: pour pas alourdir ce post de 6 pages
QUESTION 1: Pour remettre la table aux 0 des index => effacer puis refaire (copier/coller)
QUESTION 2: Je vois pas trop l'interêt des htmlspecialchars ici car tu n'afficheras pas du code html !!!
Sinon oui.
Le HTMLspecialChar ne sert pas pour les accents aussi ?
Parce que si à l'affichage je ne met pas htmlspecialchars_decode je me retrouve avec des caractères bizarres...
Et comme Editeur faut que je prenne 5 min pour Komodo Edit.
Là je suis sur NotePad ++. :D
EDIT : Je vais créer un autre POST car il y'a un petit soucis en fait... lol
Oui, parceque, je crois que celui là est plein :mouarf:
;)
NotePad++ est très bien !
Si tu as des problèmes de caractères spéciaux, il faut voir du côté de l'encodage de tes fichiers.
Je suis en charset=iso-8859-1, comme le serveur...