[RESOLU] Je ne peux plus mettre en decimal(10,2) ? ça revient toujours à (10,0)

Avatar du membre
Mammouth du PHP | 1564 Messages

10 nov. 2018, 11:32

Bonjour, lors que j'ajoute un champ de type decimal(10,2) il revient toujours en decimal(10)

j'ai essayé de mettre une valeur par défaut, c'est à dire 0.00, rien y fait, j'ai essayé aussi 10,3 puis 10,4 (aussi avec des valeurs respectives par défaut mais rien :shock: )...

Avatar du membre
Mammouth du PHP | 1609 Messages

16 nov. 2018, 12:31

Salut, déjà vérifie la colonne sur ta table pour t'assurer qu'elle est bien en 10,2 (8 chiffres et 2 décimales max).
Ensuite lors d'un insert la valeur doit bien contenir un point et non une virgule.
Si tu essaies de mettre par exemple 8,5 ça n'enregistrera que 8 mais si tu mets 8.5 ça devrait bien enregistrer 8.5.
Développeur web depuis + de 20 ans

Avatar du membre
Mammouth du PHP | 1564 Messages

16 nov. 2018, 18:43

Salut, merci d'essayer de solutionner ce problème, j'ai posté un message sur le forum wampserver entre-temps mais pas de réponse à ce jour...

elle est pas en 10,2 car j’essaie de la mettre en 10,2 mais elle veut pas, le résultat de la requête SQL dans pMA est toujours:

Code : Tout sélectionner

ALTER TABLE `test` CHANGE `champdecimal` `champdecimal` DECIMAL(10) NOT NULL;
par contre si je tape directement ceci:

Code : Tout sélectionner

ALTER TABLE `test` CHANGE `champdecimal` `champdecimal` DECIMAL(10,2) NOT NULL;
mon champ ce change bien en 10,2 et reste pas en 10,0

Avatar du membre
Mammouth du PHP | 1609 Messages

17 nov. 2018, 15:14

Ah d'accord j'avais mal compris. Normalement si tu mets 10,2 dans le champs Taille/Valeurs* ça devrait bien fonctionner... en tout cas sur la version de phpmyadmin que j'ai, pas de problème ça fonctionne, alors je ne saurais dire.

PS : Tu n'es apparemment pas le seul à avoir rencontré le problème.
Il y a un lien vers un patch ici, apparemment un intval($length) qui du coup ramène 10,2 à 10, il suffirait d'enlever le intval (fichier libraries/Table.php) :
https://github.com/phpmyadmin/phpmyadmin/issues/12551
Développeur web depuis + de 20 ans

Avatar du membre
Mammouth du PHP | 1564 Messages

18 nov. 2018, 00:09

Merci, je regarderais demain en traduisant le texte

Avatar du membre
Mammouth du PHP | 1564 Messages

19 nov. 2018, 11:45

Merci, j'ai résolu mon problème:
MyTheValentinus a commenté on 23 Aug 2016

Bonjour,
J'ai le correctif temporaire avec ce code dans librairies / Tables.php, ligne 402.

https://gist.github.com/MyTheValentinus ... ed9c6d6ac4
Ce bug serait apparemment solutionné dans le version 4.6.5 de pMA, j'ai la 4.6.4
        /*if ($length != '' && ! preg_match($pattern, $type)) {
            $query .= '(' . intval($length) . ')';
        }*/
if ($length != '' && ! preg_match($pattern, $type)) {

  $lengthFix = str_replace(",", ".", $length);

  if($lengthFix != $length){
      $modified = true;
  }

  if(is_numeric($lengthFix)){

      if($modified){
          $length = str_replace(".", ",", $lengthFix);
      }

      $query .= '(' . $length . ')';
  }

}