Update mysql / php

Fermé
lyne - 29 nov. 2009 à 22:44
 le père - 4 déc. 2009 à 23:23
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.
A voir également:

6 réponses

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
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
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
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
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
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
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
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

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

Posez votre question
Comment sont définis ces champs ?
0
c'est a dire ?
0
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