Problème écriture dans mysql

Résolu/Fermé
wyllos Messages postés 160 Date d'inscription dimanche 3 juin 2007 Statut Membre Dernière intervention 15 septembre 2011 - 3 sept. 2008 à 09:32
wyllos Messages postés 160 Date d'inscription dimanche 3 juin 2007 Statut Membre Dernière intervention 15 septembre 2011 - 3 sept. 2008 à 17:58
Bonjour,
j'ai un problème avec une application que je suis en train de développer et je n'arrive pas à comprendre pourquoi.
J'ai une table sql qui est comme cela: TABLE `projet` (
`id_projet` varchar(10) NOT NULL,
`client_num` int(10) NOT NULL,
`nom_resp` varchar(20) NOT NULL,
`datedemande` date NOT NULL default '0000-00-00',
`designationprojet` varchar(255) NOT NULL,
`statusprojet` varchar(255) NOT NULL,
`conditions` varchar(255) NOT NULL,
`datefacturation` date NOT NULL default '0000-00-00',
`statusdossier` varchar(255) NOT NULL,
`article_num` varchar(30) NOT NULL,
`quanti` double NOT NULL,
`prix` float(8,2) NOT NULL,
`tot_art_htva` float(20,2) NOT NULL default '0.00',
`dure` varchar(255) NOT NULL,
`lieu` varchar(60) default NULL,
`type` varchar(255) default NULL,
PRIMARY KEY (`id_projet`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

quand je fais mon post je récupère qui sont celle-ci:
$num = isset($_POST['nom_resp'])?$_POST['nom_resp']:"";
$designation = isset($_POST['designationprojet'])?$_POST['designationprojet']:"";
$statusprojet = isset($_POST['statusprojet'])?$_POST['statusprojet']:"";
$conditions = isset($_POST['conditions'])?$_POST['conditions']:"";
$datefacturation = isset($_POST['datefacturation'])?$_POST['datefacturation']:"";
$id_projet = isset($_POST['id_projet'])?$_POST['id_projet']:"";
$article = isset($_POST['article_num'])?$_POST['article_num']:"";
$dev_num = isset($_POST['num_devis'])?$_POST['num_devis']:"";
$dure = isset($_POST['dure'])?$_POST['dure']:"";

et quand je fais mon update:
$sql = "UPDATE projet ( nom_resp, dure ) VALUES ( '$num', '$dure' ) WHERE id_projet = '$dev_num'";

mysql_query($sql) or die("Erreur mise à jour du projet<br/>$sql<br/>".mysql_error());

rien ne s'enregistre dans la base. Je ne comprends pas pourquoi. Avez vous une idée?

Merci
A voir également:

12 réponses

Bonjour

Fais un echo htmlentites($sql); pour voir quelle requête est vraiment exécutée
0
bien sûr !
la syntaxe en mysql (comme indiqué dans le manuel mysql. L'as-tu lu avant de poster ici ?) est :
UPDATE projet SET nom_resp='jacque', dure='6 jours' WHERE id_projet=22


au passage, utilise mysql_real_escape_string, ça t'évitera des petits ennuis si les gens mettent des apostrophes (ou autres caractères bizarres) dans leur nom
0
Il ne s'agit pas d'essayer des syntaxes au hasard pour voir !
Tu n'as sûrement plus la même erreur. Le message a forcément changé. Peux-tu indiquer le nouveau ?
as-tu remis les apostrophes que je n'avais pas recopiées autour de '22' ?
0
Ouh la la ! qu'est ce c'est que tous ces backslashes ?
N'aurais-tu pas utilisé du "addslashes" ou "mysql_real_escape_string" sans avoir bien compris leur rôle - donc leur utilisation ? Si c'est le cas, commence par les supprimer, et si après ça marche n'en déduit surtout pas que ces fonctions sont inutiles.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
de plus, il y a une parenthèse qui traîne
0
Tu peux 'découper' la date à l'aide de la fonction substr et recoller les morceaux dans le bon ordre. Il y a sûrement mieux, mais personnellement c'est comme ça que je fais
0
wyllos Messages postés 160 Date d'inscription dimanche 3 juin 2007 Statut Membre Dernière intervention 15 septembre 2011 5
3 sept. 2008 à 17:58
Merci à vous tout est rentré dans l'ordre.
0
wyllos Messages postés 160 Date d'inscription dimanche 3 juin 2007 Statut Membre Dernière intervention 15 septembre 2011 5
3 sept. 2008 à 09:47
Dans mon post je récupère cela :
nom_resp = jacque
datefacturation = 15-09-2008
dure = 6 jours
num_devis = 22
-1
dosic Messages postés 19 Date d'inscription mardi 22 janvier 2008 Statut Membre Dernière intervention 9 septembre 2008
3 sept. 2008 à 10:05
quel est l erreur du die qu il te donne
-1
wyllos Messages postés 160 Date d'inscription dimanche 3 juin 2007 Statut Membre Dernière intervention 15 septembre 2011 5
3 sept. 2008 à 10:23
l'erreur est la suivante:

Erreur mise à jour du projet
UPDATE projet ( nom_resp, dure ) VALUES ( 'jacque', '6 jours' ) WHERE id_projet = '22'
Erreur de syntaxe pr�s de '( nom_resp, dure ) VALUES ( 'jacque', '6 jours' ) WHERE id_p' � la ligne 1


-1
wyllos Messages postés 160 Date d'inscription dimanche 3 juin 2007 Statut Membre Dernière intervention 15 septembre 2011 5
3 sept. 2008 à 11:16
Même en mettant cette syntaxe:

UPDATE projet SET nom_resp='jacque', dure='6 jours' WHERE id_projet=22

j'ai la même erreur.
-1
wyllos Messages postés 160 Date d'inscription dimanche 3 juin 2007 Statut Membre Dernière intervention 15 septembre 2011 5
3 sept. 2008 à 11:49
Cette syntaxe c'est celle que j'ai mise au départ puis que j'ai modifié car elle ne fonctionnait pas.

Erreur:

Erreur mise à jour du projet
UPDATE projet SET nom_resp=\'jacque\', dure=\'6 jours\' ) WHERE id_projet = \'22\'
Erreur de syntaxe pr�s de '\'jacque\', dure=\'6 jours\' ) WHERE id_projet = \'22\'' � la ligne 1
-1
wyllos Messages postés 160 Date d'inscription dimanche 3 juin 2007 Statut Membre Dernière intervention 15 septembre 2011 5
3 sept. 2008 à 12:10
A je sais ce qui coince mais je ne sais pas comment le transformer. Dans la récupération de post j'ai datefacturation qui est de cette forme = jj-mm-aaaa alors que l'injection dans la bd doit se faire par =aaaa-mm-jj.
Comment je peut le transformer car des que je retire l'update de la datefacturation tout s'enregistre.
-1