Sérieux problème avec les nombres et mysql
11 messages
• Page 1 sur 1
- code
- WRInaute impliqué

- Messages: 648
- Inscription: 29 Juil 2005
Sérieux problème avec les nombres et mysql
Bonjour,
sur le site de mon www, je suis confronté à un problème récurrent et pour le moins génant :
Certaines opérations sur le site provoquent des enregistrements par addition et soustraction dans la base de données.
Mais il s'avère que parfois (rarement heureusement), il y a un bug qui fait qu'au lieu d'ajouter par exemple 1000 à la valeur actuelle d'un champ, je retrouve un chiffre complètement erroné et toujours le même soit 16xxxxxxxx
(certainement le maximum possible que peut permettre le type de champ)
Pour info, ce bug se produit sur des champs de ce type : mediumint(10)
Je suis sûr que ça vient de là et que je me suis planté à ce niveau, mediumint ne doit pas convenir pour traiter les opérations que je demande
Qu'en pensez-vous ?
sur le site de mon www, je suis confronté à un problème récurrent et pour le moins génant :
Certaines opérations sur le site provoquent des enregistrements par addition et soustraction dans la base de données.
Mais il s'avère que parfois (rarement heureusement), il y a un bug qui fait qu'au lieu d'ajouter par exemple 1000 à la valeur actuelle d'un champ, je retrouve un chiffre complètement erroné et toujours le même soit 16xxxxxxxx
(certainement le maximum possible que peut permettre le type de champ)
Pour info, ce bug se produit sur des champs de ce type : mediumint(10)
Je suis sûr que ça vient de là et que je me suis planté à ce niveau, mediumint ne doit pas convenir pour traiter les opérations que je demande
Qu'en pensez-vous ?
- code
- WRInaute impliqué

- Messages: 648
- Inscription: 29 Juil 2005
Ce que j'apprécie sur ce forum, c'est qu'à chaque fois que je pose une question qui nécessite de l'aide, je constate qu'il y a foule pour répondre.
Par contre dés que quelqu'un ouvre un sujet pour dire qu'il y a une GoogleDance, ou que des sites montes dans l'index et que d'autre perdent des places, alors là il y a des pages et des pages de réponses...
Par contre dés que quelqu'un ouvre un sujet pour dire qu'il y a une GoogleDance, ou que des sites montes dans l'index et que d'autre perdent des places, alors là il y a des pages et des pages de réponses...
- gabriel_f
- Nouveau WRInaute

- Messages: 19
- Inscription: 12 Jan 2007
Salut,
A priori en unsigned ( donc toujours > 0 ) la valeur max d'un mediumint cest
(doc mysql) The unsigned range is 0 to 16777215.
Donc vraisemblablement , tu arrives a cette valeur max et mysql cap. ( chose qui m'est deja arrivé) t'es bon pour passer en INT ou t'as plus de marge, et apres en BIGINT si tu pousses vraiment loin
http://dev.mysql.com/doc/refman/4.1/en/ ... rview.html
Voila jespere t'avoir aidé ( un peu )
A priori en unsigned ( donc toujours > 0 ) la valeur max d'un mediumint cest
(doc mysql) The unsigned range is 0 to 16777215.
Donc vraisemblablement , tu arrives a cette valeur max et mysql cap. ( chose qui m'est deja arrivé) t'es bon pour passer en INT ou t'as plus de marge, et apres en BIGINT si tu pousses vraiment loin
http://dev.mysql.com/doc/refman/4.1/en/ ... rview.html
Voila jespere t'avoir aidé ( un peu )
- code
- WRInaute impliqué

- Messages: 648
- Inscription: 29 Juil 2005
merci pour ta réponse mais apparemment le probleme se situe ailleurs. Car en fait il se passe que par exemple un enregistrement ajoute 1000 à la valeur actuelle du champ, par exemple 500. Je devrais donc avoir comme nouvelle valeur 500+1000 = 1500
Et c'ets là ou je me retrouve de temps en temps avec la valeur maximum permise par mediumint, soit 16777215, ce qui n'est absolument pas normal !
Et c'ets là ou je me retrouve de temps en temps avec la valeur maximum permise par mediumint, soit 16777215, ce qui n'est absolument pas normal !
-

NxtGen - WRInaute impliqué

- Messages: 762
- Inscription: 24 Oct 2006
code a écrit:Ce que j'apprécie sur ce forum, c'est qu'à chaque fois que je pose une question qui nécessite de l'aide, je constate qu'il y a foule pour répondre.
Par contre dés que quelqu'un ouvre un sujet pour dire qu'il y a une GoogleDance, ou que des sites montes dans l'index et que d'autre perdent des places, alors là il y a des pages et des pages de réponses...
Sans voir le code, c'est difficile de te répondre...
C'est surement un soucis dans ta requete qui est peut etre dans une boucle, ou des variables que tu prend en compte dans cette requete
Il y a un millions de raisons envisageables, alors un petit morceau de code pourrait peut etre nous aider à t'aider.
-

Leonick - WRInaute accro

- Messages: 19598
- Inscription: 8 Aoû 2004
ajoute
- Code: Tout sélectionner
error_reporting(E_ALL);
- bozoleclown
- WRInaute impliqué

- Messages: 893
- Inscription: 24 Nov 2005
Ca t'arrive pas de des faire plutot
500 - 1000 et donc du coup en Unsigned c normal que ce soit égale à 16xxxxxx
Donc si c un probleme de soustraction trop gourmande
passe en ton champ en "Signed"
ainsi 500 - 1000 = -500
maintenant tu dois avoir qd meme un p'tit bug qqpart
500 - 1000 et donc du coup en Unsigned c normal que ce soit égale à 16xxxxxx
Donc si c un probleme de soustraction trop gourmande
passe en ton champ en "Signed"
ainsi 500 - 1000 = -500
maintenant tu dois avoir qd meme un p'tit bug qqpart
-

Leonick - WRInaute accro

- Messages: 19598
- Inscription: 8 Aoû 2004
c'est le problème de pas mal de scripts écrit avec un bôbozoleclown a écrit:maintenant tu dois avoir qd meme un p'tit bug qqpart
- Code: Tout sélectionner
error_reporting(0);
- code
- WRInaute impliqué

- Messages: 648
- Inscription: 29 Juil 2005
bozoleclown a écrit:Ca t'arrive pas de des faire plutot
500 - 1000 et donc du coup en Unsigned c normal que ce soit égale à 16xxxxxx
Donc si c un probleme de soustraction trop gourmande
passe en ton champ en "Signed"
ainsi 500 - 1000 = -500
maintenant tu dois avoir qd meme un p'tit bug qqpart
Normalement ce n'est pas possible : mais ton exemple vient de me faire réfléchir à une chose !
si par exemple un membre du site force le chargement d'une page et exécute 2 fois de suite le script à interval très court, ça ne serait pas la cause du probleme.
Exemple : un membre à 1000 point sur son compte. il valide un formulaire
qui fait l'opération 1000-1000 et exécute 2 fois le script en rechargenat la page jsute après la validation du formulaire.
Normalement ce n'est pas possible car il y a une requete de vérification avant la requete d'enregistrement de l'opération qui effectue la soustraction. Mais admettons que pour une raison ou une autre la page mette du temps à charger. La personne revalide le formumaire ou rafraichie la page pensant que sa premiere validation n'a pas marché.
L'erreur doit donc venir du traitement du formulaire et non de la base de données ou de mes champs ce qui me rassure déjà pas mal
11 messages
• Page 1 sur 1
Lectures recommandées sur ce thème :
- Les Nombres de clics, nombres d'aticles par pages, et nombres de pages d'une recherche
- Mysql 5 : Tri sur nombres négatifs
- Sérieux problème SQL
- Probleme de referencement serieux...
- Serieux probleme avec joomla 1.5.8 et VirtueMart 1.1.2
- probleme serieux avec google et probleme avec des balises
- problème mysql
- Problème pagination php mysql
- problème avec mon mysql
- problème d'update avec MySql 5.0
Consultez la description détaillée des produits ou services de Google suivants : Google Search By Number
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités
