Problème écriture dans mysql
Résolu
wyllos
Messages postés
160
Date d'inscription
Statut
Membre
Dernière intervention
-
wyllos Messages postés 160 Date d'inscription Statut Membre Dernière intervention -
wyllos Messages postés 160 Date d'inscription Statut Membre Dernière intervention -
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
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:
- Problème écriture dans mysql
- Écriture facebook - Guide
- Ecriture en gras - Guide
- Ecriture instagram - Guide
- Écriture à l'envers miroir - Guide
- Mysql community server - Télécharger - Bases de données
12 réponses
bien sûr !
la syntaxe en mysql (comme indiqué dans le manuel mysql. L'as-tu lu avant de poster ici ?) est :
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
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
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' ?
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' ?
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.
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.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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
Dans mon post je récupère cela :
nom_resp = jacque
datefacturation = 15-09-2008
dure = 6 jours
num_devis = 22
nom_resp = jacque
datefacturation = 15-09-2008
dure = 6 jours
num_devis = 22
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
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
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.
UPDATE projet SET nom_resp='jacque', dure='6 jours' WHERE id_projet=22
j'ai la même erreur.
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
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
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.
Comment je peut le transformer car des que je retire l'update de la datefacturation tout s'enregistre.