Problème écriture dans mysql

Résolu
wyllos Messages postés 165 Statut Membre -  
wyllos Messages postés 165 Statut Membre -
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

--

window XP
Configuration: Windows XP
Firefox 2.0.0.16

12 réponses

  1. toto
     
    Bonjour

    Fais un echo htmlentites($sql); pour voir quelle requête est vraiment exécutée
    0
  2. toto
     
    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
  3. toto
     
    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
  4. toto
     
    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. toto
     
    de plus, il y a une parenthèse qui traîne
    0
  7. toto
     
    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
    1. wyllos Messages postés 165 Statut Membre 5
       
      Merci à vous tout est rentré dans l'ordre.
      0
  8. wyllos Messages postés 165 Statut Membre 5
     
    Dans mon post je récupère cela :
    nom_resp = jacque
    datefacturation = 15-09-2008
    dure = 6 jours
    num_devis = 22
    -1
  9. dosic Messages postés 19 Statut Membre
     
    quel est l erreur du die qu il te donne
    -1
  10. wyllos Messages postés 165 Statut Membre 5
     
    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
  11. wyllos Messages postés 165 Statut Membre 5
     
    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
  12. wyllos Messages postés 165 Statut Membre 5
     
    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
  13. wyllos Messages postés 165 Statut Membre 5
     
    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