Update mysql / php

Bonjour,

J'execute une requete update via php. L'ensemble des champs se met a jour sauf 4.
Je ne sais pas pourquoi.
Lorsque j'affiche ma requete dans mon code php et copie/colle dans mon myphpadmin ca marche.

Mais pas via la commande php.

Merci de votre aide.
Configuration: Windows XP Internet Explorer 6.0

6 réponses

  1. Ta table clients, elle a bien une définition ? Sans la donner toute, peux-tu donner la définition des 4 champs en question ?
    Peux-tu essayer
    UPDATE clients SET nom = 'machin', codeagence = 'ABC' WHERE clients.id ='22263'
    pour vérifier que dans la même requête, nom est mis à jour et pas codeagence ?
    0
    1. Comment sont définis ces champs ?
      0
      1. c'est a dire ?
        0
    2. Tu peux affirmer que tous les champs sauf ces 4 sont bien mis à jour ? C'est à dire que tu as bien vérifié leurs valeurs avant ET après ? Ou au moins les champs immédiatement précédent (tel) et suivant (coderoute) ?
      C'est vrai que je n'ai pas l'expérience de la mise à jour simultanée d'une petite centaine de champs, mais j'ai vraiment du mal à imaginer un bug de mysql sur un simple UPDATE.
      Y a-t-il des apostrophes dans les valeurs que tu essayes de mettre à jour - ou peut-il y en avoir ?
      0
      1. Normalement pas d'apostrophe seulement 3 Lettres les valeurs sont prises depuis une liste deroulante.
        J'ai fait l'essai egalement avec un update uniquement sur ces 4 champs et meme probleme...
        0
    3. Cette ligne met bien à jour les champs codeagence, codeagenceD, codeagenceF et codeagenceA. Tu auras beaucoup de mal à me faire avaler le contraire.
      Comment vérifies-tu le contenu de ces champs avant et après la requête ? Avec phpmyadmin ou avec un script ?
      0
      1. Je verifie de 2 facons.

        je recharge une page qui affiche l'ensemble des données. et dans phpadmin je regarde le contenu de la table juste apres l'execution de l'update.
        0
    4. Les valeurs $data['codeagence'] ... renvoient bien une valeur a l'affichage
      Très heureux de le savoir. Mais dans ta requête, c'est $tosave que tu utilises, pas $data.

      Peux-tu dé-commenter le echo $sql et recopier ici un exemple de la requête obtenue (en évitant les données confidentielles bien sûr) ?

      D'autre part, ton if (!$req) {
      $message = 'Erreur'; //. mysql_error() . "\n";
      echo $message;
      est totalement inutile. Si tu as une erreur, le "or die..." après le mysql_query t'aura fait quitter le script avant.
      0
      1. Oui pardon c'est bien echo $tosave['codeagence'] qui affiche bien la valeur.

        voila le resultat du echo de la requete :

        UPDATE clients SET nom = 'LYNE', adr1 = 'lyne', adr2 = 'lyne', adr3 = 'lyne', zipcode = 'lyne', ville = 'lyne', contact = 'lyne', tel = 'lyne', codeagence = 'BOD', codeagenceD = '290', codeagenceF = '', codeagenceA = '', coderoute = 'lyne', ucti = 'lyne', contactcim = 'RENOULT', contactcog = 'lyne', com = 'FTP', retourinfos = 'OUI', imprimante = 'A4', reseaux = 'NON', import = 'SAISIE', siret = 'lyne', codepartner = 'lyne', regroupement = 'OUI', remarques = 'lyne', contact2 = 'lyne', telcontact2 = 'lyne', emailcontact2 = 'lyne', contactcom = 'lyne', telcontactcom = '', emailcontactcom = 'lyne', emailcontactcim = 'lyne', emailcontactcog = 'lyne', cutofftime = 'lyne', ebooking = 'OUI', scanner = 'NON', tarifs = 'OUI', balance = 'OUI', pcclient = 'OUI', midday = 'OUI', nbpostes = '1', unom = '', utel = '', uemail = '', trackinghisto = '', trackingemail = '', gestionref = '', idsecurise = '', pumultisites = '', manauto = '', divers = '', contactemail = 'lyne', termanager = 'lyne', respvente = 'lyne', fichieras2 = 'lyne', priorite = 'R5', ftpserveur = '', ftplogin= '', ftppassword= '', ftpdirectory= '', pdt= '', formatEDI= '', label= '', documentation= '', remarquesEDI= '', marque1= 'lyne', numserie1= 'lynee', numinventaire1= 'lyne', remarques1= 'lyne', marque2= '', numserie2= '', numinventaire2= '', remarques2= '', marque3= '', numserie3= '', numinventaire3= '', remarques3= '', marqueb= 'lyne', numserieb= 'lyne', numinventaireb= 'lyne', remarquesb= 'lyne', marqued= '', numseried= '', numinventaired= '', remarquesd= '', marquea= 'lyne', numseriea= 'lyne', numinventairea= 'lyne', remarquesa= 'lyne', marquet= '', numseriet= '', numinventairet= '', remarquest= '', datemodif= '2009-11-30', dtcreation= '', dtfinparam= '0000-00-00', dtinstall= '0000-00-00', statut= 'modif' WHERE clients.id ='22263'
        0
    5. Bonjour

      Quand tous le champs se mettent à jour sauf 4, c'est généralement que le programmeur est taureau ascendant scorpion.
      Sérieusement, comment veux-tu qu'on devine sans aucun autre élément ? Donne le morceau de ton programme qui fait cette mise à jour
      0
      1. Oui Taureau c'est exactement ca :-)

        voila ma requete
        $sql = "UPDATE clients SET
        nom = '".$tosave['nom']."',
        adr1 = '".$tosave['adr1']."',
        adr2 = '".$tosave['adr2']."',
        adr3 = '".$tosave['adr3']."',
        zipcode = '".$tosave['zipcode']."',
        ville = '".$tosave['ville']."',
        contact = '".$tosave['contact']."',
        tel = '".$tosave['tel']."',
        codeagence = '".$tosave['codeagence']."',
        codeagenceD = '".$tosave['codeagenceD']."',
        codeagenceF = '".$tosave['codeagenceF']."',
        codeagenceA = '".$tosave['codeagenceA']."'
        coderoute = '".$tosave['coderoute']."',
        ucti = '".$tosave['ucti']."',
        contactcim = '".$tosave['contactcim']."',
        contactcog = '".$tosave['contactcog']."',
        com = '".$tosave['com']."',
        retourinfos = '".$tosave['retourinfos']."',
        imprimante = '".$tosave['imprimante']."',
        reseaux = '".$tosave['reseaux']."',
        import = '".$tosave['import']."',
        siret = '".$tosave['siret']."',
        codepartner = '".$tosave['codepartner']."',
        regroupement = '".$tosave['regroupement']."',
        remarques = '".$tosave['remarques']."',
        contact2 = '".$tosave['contact2']."',
        telcontact2 = '".$tosave['telcontact2']."',
        emailcontact2 = '".$tosave['emailcontact2']."',
        contactcom = '".$tosave['contactcom']."',
        telcontactcom = '".$tosave['telcontactcom']."',
        emailcontactcom = '".$tosave['emailcontactcom']."',
        emailcontactcim = '".$tosave['emailcontactcim']."',
        emailcontactcog = '".$tosave['emailcontactcog']."',
        cutofftime = '".$tosave['cutofftime']."',
        ebooking = '".$tosave['ebooking']."',
        scanner = '".$tosave['scanner']."',
        tarifs = '".$tosave['tarifs']."',
        balance = '".$tosave['balance']."',
        pcclient = '".$tosave['pcclient']."',
        midday = '".$tosave['midday']."',
        nbpostes = '".$tosave['nbpostes']."',
        unom = '".$tosave['unom']."',
        utel = '".$tosave['utel']."',
        uemail = '".$tosave['uemail']."',
        trackinghisto = '".$tosave['trackinghisto']."',
        trackingemail = '".$tosave['trackingemail']."',
        gestionref = '".$tosave['gestionref']."',
        idsecurise = '".$tosave['idsecurise']."',
        pumultisites = '".$tosave['pumultisites']."',
        manauto = '".$tosave['manauto']."',
        divers = '".$tosave['divers']."',
        contactemail = '".$tosave['contactemail']."',
        termanager = '".$tosave['termanager']."',
        respvente = '".$tosave['respvente']."',
        fichieras2 = '".$tosave['fichierAS2']."',
        priorite = '".$tosave['priorite']."',
        ftpserveur = '".$tosave['ftpserveur']."',
        ftplogin= '".$tosave['ftplogin']."',
        ftppassword= '".$tosave['ftppassword']."',
        ftpdirectory= '".$tosave['ftpdirectory']."',
        pdt= '".$tosave['pdt']."',
        formatEDI= '".$tosave['formatEDI']."',
        label= '".$tosave['label']."',
        documentation= '".$tosave['documentation']."',
        remarquesEDI= '".$tosave['remarquesEDI']."',
        marque1= '".$tosave['marque1']."',
        numserie1= '".$tosave['numserie1']."',
        numinventaire1= '".$tosave['numinventaire1']."',
        remarques1= '".$tosave['remarques1']."',
        marque2= '".$tosave['marque2']."',
        numserie2= '".$tosave['numserie2']."',
        numinventaire2= '".$tosave['numinventaire2']."',
        remarques2= '".$tosave['remarques2']."',
        marque3= '".$tosave['marque3']."',
        numserie3= '".$tosave['numserie3']."',
        numinventaire3= '".$tosave['numinventaire3']."',
        remarques3= '".$tosave['remarques3']."',
        marqueb= '".$tosave['marqueb']."',
        numserieb= '".$tosave['numserieb']."',
        numinventaireb= '".$tosave['numinventaireb']."',
        remarquesb= '".$tosave['remarquesb']."',
        marqued= '".$tosave['marqued']."',
        numseried= '".$tosave['numseried']."',
        numinventaired= '".$tosave['numinventaired']."',
        remarquesd= '".$tosave['remarquesd']."',
        marquea= '".$tosave['marquea']."',
        numseriea= '".$tosave['numseriea']."',
        numinventairea= '".$tosave['numinventairea']."',
        remarquesa= '".$tosave['remarquesa']."',
        marquet= '".$tosave['marquet']."',
        numseriet= '".$tosave['numseriet']."',
        numinventairet= '".$tosave['numinventairet']."',
        remarquest= '".$tosave['remarquest']."',
        datemodif= '".$tosave['datemodif']."',
        dtcreation= '".$tosave['dtcreation']."',
        dtfinparam= '".$tosave['dtfinparam']."',
        dtinstall= '".$tosave['dtinstall']."',
        statut= '".$tosave['statut']."'
        WHERE clients.id ='".$tosave['id']."'" ;

        // on envoie la requête
        //echo $sql;
        $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
        if (!$req) {
        $message = 'Erreur'; //. mysql_error() . "\n";
        echo $message;
        }

        Les champs codeagence;codeagenceD,codeagenceF,codeagenceA ne sont pas mis a jour.
        Les valeurs $data['codeagence'] ... renvoient bien une valeur a l'affichage.

        Merci
        0