Les Allergies
Alimentaires
Posez votre question Signaler

Update mysql / php

lyne - Dernière réponse le 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.
Lire la suite 

Update mysql / php »

Suggestions
11 réponses
Réponse
+0
moins plus
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
lyne - 30 nov. 2009 à 09:50
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
Ajouter un commentaire
Réponse
+0
moins plus
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.
lyne - 30 nov. 2009 à 10:23
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'
Ajouter un commentaire
Réponse
+0
moins plus
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 ?
lyne - 1 déc. 2009 à 08:44
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.
Ajouter un commentaire
Réponse
+0
moins plus
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 ?
lyne - 2 déc. 2009 à 11:21
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...
Ajouter un commentaire
Réponse
+0
moins plus
Comment sont définis ces champs ?
lyne - 4 déc. 2009 à 21:23
c'est a dire ?
Ajouter un commentaire
Réponse
+0
moins plus
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 ?
Ajouter un commentaire
Ce document intitulé « Update mysql / php » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?