Bug avec MySQL -> update les champs à vide
23 messages • Page 1 sur 2 • 1, 2
Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics
- positivespike
- Nouveau WRInaute
- Messages: 21
- Inscription: Mer Fév 21, 2007 11:49
Bug avec MySQL -> update les champs à vide
Bonsoir à tous.
J'ai le problème suivant en tantant un Update dans ma base MySQL :
1) Je récupère et je formate mes variables POST :
2) Je fais l'update dans la base comme ceci :
Résultat :
J'obtiens une mise à 0 de tous les champs
Pourtant quand je fais un echo de mon $sql, j'obtiens bien des valeurs correctes.
Je précise deplus, qu'en local tout marche impecablement, mais sur mon serveur de prod, toutes les variables sont mises à 0
Pour courroner le tout, quand j ecopie colle l'echo de$sql dans le PHPmYAdmin distant, tout marche bien, l'update se fait correctement.
Si quelqu'un a une idée du problème, je lui en serai vraiment reconnaissant
Merci d'avance
J'ai le problème suivant en tantant un Update dans ma base MySQL :
1) Je récupère et je formate mes variables POST :
- Code: Tout sélectionner
$id_journal = $_POST['id_journal'];
$jouri = $_POST['jour_i'];
$moisi = $_POST['mois_i'];
$anneei = $_POST['annee_i'];
$heure = $_POST['heure_i'];
$poids = $_POST['poids_i'];
$poids = str_replace(",", '.', $poids);
$poids = round($poids,2);
$tour_taille = $_POST['tour_taille'];
$tour_taille = str_replace(",", '.', $tour_taille);
$tour_taille = round($tour_taille,2);
$nivalim = $_POST['nivalim'];
$txtalim = $_POST['txtalim'];
$txtalim = str_replace("\n", '<br>', $txtalim);
$nivsport = $_POST['nivsport'];
$txtsport = $_POST['txtsport'];
$txtsport = str_replace("\n", '<br>', $txtsport);
$nivmood = $_POST['nivmood'];
$txtjournal = $_POST['txtjournal'];
$txtjournal = str_replace("\n", '<br>', $txtjournal);
2) Je fais l'update dans la base comme ceci :
- Code: Tout sélectionner
$sql = "UPDATE journal SET `date`='$anneei-$moisi-$jouri',`heure`='$heure',`poids`='$poids',`tour_taille` = $tour_taille,
`alim_mood`='$nivalim',`alim_com`='$txtalim',`act_mood`='$nivsport',`act_com`='$txtsport',`humeur`='$nivmood',`journal`='$txtjournal' WHERE `id`='$idJournal'";
$resultat = mysql_query($sql);
Résultat :
J'obtiens une mise à 0 de tous les champs
Pourtant quand je fais un echo de mon $sql, j'obtiens bien des valeurs correctes.
Je précise deplus, qu'en local tout marche impecablement, mais sur mon serveur de prod, toutes les variables sont mises à 0
Pour courroner le tout, quand j ecopie colle l'echo de$sql dans le PHPmYAdmin distant, tout marche bien, l'update se fait correctement.
Si quelqu'un a une idée du problème, je lui en serai vraiment reconnaissant
Merci d'avance
- positivespike
- Nouveau WRInaute
- Messages: 21
- Inscription: Mer Fév 21, 2007 11:49
Merci pour l'astuce, mais ca ne change rien.
J'ai même remarqué quelquechose d'encore plus étrange :
Quand je fais l'update, la première fois tous les champs sont donc mis à 0, mais si j'effectue un rechargement de la page (avec les données POST) La la modif s'effectue sans problème !!
Se peut-il qu'il y ai un problème avec Apache ou MySQL ? Je remarque d'ailleurs des lenteurs sur le site.
J'ai même remarqué quelquechose d'encore plus étrange :
Quand je fais l'update, la première fois tous les champs sont donc mis à 0, mais si j'effectue un rechargement de la page (avec les données POST) La la modif s'effectue sans problème !!
Se peut-il qu'il y ai un problème avec Apache ou MySQL ? Je remarque d'ailleurs des lenteurs sur le site.
-

erestrebian - WRInaute impliqué

- Messages: 394
- Inscription: Ven Juin 15, 2007 12:55
apparemment oui...
tu as essayer de faire émerger un sqlerror et si oui, tu n'as pas d'erreur?
tu as essayer de faire émerger un sqlerror et si oui, tu n'as pas d'erreur?
- positivespike
- Nouveau WRInaute
- Messages: 21
- Inscription: Mer Fév 21, 2007 11:49
La j'avoue mon ignorance, faire emerger un sql error c'est equivament d'un " or die(mysqlerror()) " ? si oui , c'est le cas, et je n'ai aucune erreur. si ce n'est pas ca qui fait emerger un mysql error comment dois-je faire ?
Et oui , j'ai exécuté manuellement l'echo du sql dans PHPMYAdmin et là ca marche. MAis comme je le disais, si ke recharge la page avec les variables POST toujours en mémoire, l'UPDATE se fait correctement.
Et oui , j'ai exécuté manuellement l'echo du sql dans PHPMYAdmin et là ca marche. MAis comme je le disais, si ke recharge la page avec les variables POST toujours en mémoire, l'UPDATE se fait correctement.
-

erestrebian - WRInaute impliqué

- Messages: 394
- Inscription: Ven Juin 15, 2007 12:55
a priori, tes variables prennent bien la valeur que tu leur assignes... puisque ça te retourne la requête avec les bonnes valeurs...
et quand tu fais un echo sur $resultat ça affiche 1?
tu as envoyé la requête avec des valeurs fixes (je veux dire sans variable)?
si oui, tu as essayé de passer directement les variables du post directement dans la requête? (tu peux faire " . str_replace("\n", '<br>', $_POST['txtjournal']) . " à la place de passer par $txtjournal)
toutes les valeurs sont mises à 0? ou seulement tour_taille, $nivalim, $txtalim, $nivsport, $txtsport, $nivmood et $txtjournal?
et quand tu fais un echo sur $resultat ça affiche 1?
tu as envoyé la requête avec des valeurs fixes (je veux dire sans variable)?
si oui, tu as essayé de passer directement les variables du post directement dans la requête? (tu peux faire " . str_replace("\n", '<br>', $_POST['txtjournal']) . " à la place de passer par $txtjournal)
toutes les valeurs sont mises à 0? ou seulement tour_taille, $nivalim, $txtalim, $nivsport, $txtsport, $nivmood et $txtjournal?
- positivespike
- Nouveau WRInaute
- Messages: 21
- Inscription: Mer Fév 21, 2007 11:49
Toutes champs jouant dans l'UPDATE sont soir mis à
0000-00-00 pour la date
00:00:00 pour l'heure,
0 pour les entiers
RIEN pour les chaines
Les autres champs qui ont pourtant une valeur mais qui n'entrent pas dans l'UPDATE gardent leurs valeurs.
Je n'ai aps encore essayé ceci :
Je le fais et te tiens au courant
Merci
0000-00-00 pour la date
00:00:00 pour l'heure,
0 pour les entiers
RIEN pour les chaines
Les autres champs qui ont pourtant une valeur mais qui n'entrent pas dans l'UPDATE gardent leurs valeurs.
Je n'ai aps encore essayé ceci :
t quand tu fais un echo sur $resultat ça affiche 1?
tu as envoyé la requête avec des valeurs fixes (je veux dire sans variable)?
si oui, tu as essayé de passer directement les variables du post directement dans la requête? (tu peux faire " . str_replace("\n", '<br>', $_POST['txtjournal']) . " à la place de passer par $txtjournal)
Je le fais et te tiens au courant
Merci
-

erestrebian - WRInaute impliqué

- Messages: 394
- Inscription: Ven Juin 15, 2007 12:55
si tu peux également poster un modèle de requête générée...
- positivespike
- Nouveau WRInaute
- Messages: 21
- Inscription: Mer Fév 21, 2007 11:49
Alors, voici résumé les faits (attention, c'est bizzare) :
- un echo pour le résultat affiche 1
- Quand je passe des valeurs fixes ca marche
MAIS tres bizarre :
je fais l'update, puis tout de suite apres, je fait une requete sur le poids par exemple et ca affiche le poids correct voulu par l'update.
Cependant, quand je regarde dans PHP MyAdmin, les fameux champs sont à 0.
Un exemple de output :
Avec cet update, j'ai un echo résultat à 1
puis je fais :
et là j'obtiens bien 70, comme demandé dans l'UPDATE
Cependant, je vais voir apres dans PHP MyAdmin, et les valeurs sont à
21519 0000-00-00 00:00:00 850 0 0 0 0 0 0 0
la date a été mise à 0, l'heure aussi et le poids aussi (Les autres étaient à 0 par défaut dans cet exemple)
Puis quand je change de page et que je fais une requete pour obtenis le dernier poids par exemple, il est à 0.
Je précise qu'en local su mon portable tout marche bien.
Sur le serveur distant dédié OVH c'est la que ca foire.
Voila qui est bizarre, tout de suite après l'UPDATE, je fais un SELECT et j'ai la veleur voulue, et quand je vérifie apres, les champs sont à 0.
Merci
PS, voici le code de création de la table journal :
- un echo pour le résultat affiche 1
- Quand je passe des valeurs fixes ca marche
MAIS tres bizarre :
je fais l'update, puis tout de suite apres, je fait une requete sur le poids par exemple et ca affiche le poids correct voulu par l'update.
Cependant, quand je regarde dans PHP MyAdmin, les fameux champs sont à 0.
Un exemple de output :
- Code: Tout sélectionner
UPDATE journal SET `date` = "2007-09-19", heure = "12:52", poids = "70", tour_taille = "100", alim_mood = "1", alim_com = "", act_mood = "", act_com = "TEST", humeur = "3", journal = "TEST" WHERE id = "21519"
Avec cet update, j'ai un echo résultat à 1
puis je fais :
- Code: Tout sélectionner
SELECT poids FROM journal WHERE id = 21519
et là j'obtiens bien 70, comme demandé dans l'UPDATE
Cependant, je vais voir apres dans PHP MyAdmin, et les valeurs sont à
21519 0000-00-00 00:00:00 850 0 0 0 0 0 0 0
la date a été mise à 0, l'heure aussi et le poids aussi (Les autres étaient à 0 par défaut dans cet exemple)
Puis quand je change de page et que je fais une requete pour obtenis le dernier poids par exemple, il est à 0.
Je précise qu'en local su mon portable tout marche bien.
Sur le serveur distant dédié OVH c'est la que ca foire.
Voila qui est bizarre, tout de suite après l'UPDATE, je fais un SELECT et j'ai la veleur voulue, et quand je vérifie apres, les champs sont à 0.
Merci
PS, voici le code de création de la table journal :
- Code: Tout sélectionner
CREATE TABLE journal (
id int(10) NOT NULL auto_increment,
date date default NULL,
heure time default NULL,
client varchar(11) default NULL,
poids double default NULL,
tour_taille double default NULL,
alim_mood char(1) default NULL,
alim_com text,
act_mood char(1) default NULL,
act_com text,
humeur char(1) default NULL,
journal text,
total_calories double default NULL,
total_proteines double default NULL,
total_lipides double default NULL,
total_glucides double default NULL,
total_fruits_legumes double default NULL,
PRIMARY KEY (id)
) TYPE=MyISAM;
-

erestrebian - WRInaute impliqué

- Messages: 394
- Inscription: Ven Juin 15, 2007 12:55
dans un premier lieu, change date en date_qqch car date est un mot réservé...
il n'y a plus aucun contact avec la base de données dans le reste du script? Je trouve cela super bizarre...
il n'y a plus aucun contact avec la base de données dans le reste du script? Je trouve cela super bizarre...
- positivespike
- Nouveau WRInaute
- Messages: 21
- Inscription: Mer Fév 21, 2007 11:49
Justement
Je cherche depuis des heures, et il n'y a pourtant plus aucun contact avec l abase de données ailleurs.
D'autant plus que ca ne peut pas être un éventuel autre contact avec l abase pour les raisons suivantes :
1) En local ca marche bien
2) avec de svaleurs entrées en "Dur" ca marche bien
3) Quand je fais un Reload de la page ca annule la mise à 0 précédente et la ca marche nickel.
J'ai jamais vu ca
Help
et merci pour ton aide erestrebian 
D'autant plus que ca ne peut pas être un éventuel autre contact avec l abase pour les raisons suivantes :
1) En local ca marche bien
2) avec de svaleurs entrées en "Dur" ca marche bien
3) Quand je fais un Reload de la page ca annule la mise à 0 précédente et la ca marche nickel.
J'ai jamais vu ca
Help
- positivespike
- Nouveau WRInaute
- Messages: 21
- Inscription: Mer Fév 21, 2007 11:49
Salut Rog,
Est ce que tu veux dire que le navigateur aurait du mal avec les variables POST ?
Je pensais que ca n'avait pas d'incidences, mais je précise que j'ai changé l'adresse URL de la page qui effectue ce traitement.
Comment faire pour tester si il s'agit bien d'un problème de cahce du navigateur ?
PS, J'ai effacé mes traces dans Firefox (sessions d'authentifications, cookies, cache) , le problème reste le même.
J'ai l'impression que le problème arrive aussi aux autres internautes qui visitent mon site et qui tentent une modification de leur journal.
Et pour être sur que ca ne soit pas un autre contact avec la base apres, j'ai couper tout le code qui suit l'update., rien à faire, toujours la même chose.
Est ce que tu veux dire que le navigateur aurait du mal avec les variables POST ?
Je pensais que ca n'avait pas d'incidences, mais je précise que j'ai changé l'adresse URL de la page qui effectue ce traitement.
Comment faire pour tester si il s'agit bien d'un problème de cahce du navigateur ?
PS, J'ai effacé mes traces dans Firefox (sessions d'authentifications, cookies, cache) , le problème reste le même.
J'ai l'impression que le problème arrive aussi aux autres internautes qui visitent mon site et qui tentent une modification de leur journal.
Et pour être sur que ca ne soit pas un autre contact avec la base apres, j'ai couper tout le code qui suit l'update., rien à faire, toujours la même chose.
23 messages • Page 1 sur 2 • 1, 2
Formation recommandée sur ce thème :
Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.
Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.
Lectures recommandées sur ce thème :
- Passage à l'heure d'été/hiver sur un forum phpBB
- AdSense Tracking : statistiques détaillées sur les clics AdSense
- Google Update Jagger : étape 2 sur 3
- Historique des "Google Update"
- Des changements dans l'algorithme de Google ? (22 février 2007)
- Live Search corrige le problème de referrers
- Gestion des langues et des sessions en PHP / MySQL
- Google Testing Blog : pour les développeurs
- Easter Egg dans Google Chrome (fonctions cachées)
- La mise à jour du mois de juillet arrive...
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité





le forum