Empêcher à PHP d'arrondir les données à virgule MYQL
Résolu
BOB_BOOKSON
Messages postés
21
Statut
Membre
-
jordane45 Messages postés 30426 Date d'inscription Statut Modérateur Dernière intervention -
jordane45 Messages postés 30426 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
Je suis face à une situation pour laquelle j'ai besoin de votre expertise.
En effet, je travaille sur une application des finances Php-Mysql mais lorsque je souhaite afficher les données de la base des données dans un formulaire suite à une requête, PHP arrondi automatiquement les données à virgule alors que dans la base des données cela affiche bel et bien avec la partie décimal comme le montre l'image ci-dessus.

Je suis face à une situation pour laquelle j'ai besoin de votre expertise.
En effet, je travaille sur une application des finances Php-Mysql mais lorsque je souhaite afficher les données de la base des données dans un formulaire suite à une requête, PHP arrondi automatiquement les données à virgule alors que dans la base des données cela affiche bel et bien avec la partie décimal comme le montre l'image ci-dessus.

2 réponses
-
Bonjour
Et quel est le code php utilisé pour afficher tes données ?
Car il n'y a aucune raison qu'il ne t'affiche pas ces nombres tels quels...
-
- Sous MySQL si ca peut aider le champs en question a pour type des données:
decimal(19,2)
if(isset($_POST['date1'])and isset($_POST['date2'])){
$d1= $_POST['date1'];
$d2= $_POST['date2'];
include('connexion.php');
$q1=mysql_query("select* from depense where dat_j BETWEEN '$d1' AND '$d2' ORDER BY id ASC") or die('erreur. DEP ');
$nb_result=mysql_num_rows($q1);
if ($nb_result!== 0){
while($cool_18=mysql_fetch_array($q1))
{
$montant_depense=$cool_18['montant];
Echo $montant_depense ;
echo"<br>"; }
}}
-
-
Sous MySQL si ca peut aider le champs en question a pour type des données:
decimal(19,2)
if(isset($_POST['date1'])and isset($_POST['date2'])){
$d1= $_POST['date1'];
$d2= $_POST['date2'];
include('connexion.php');
$q1=mysql_query("select* from depense where dat_j BETWEEN '$d1' AND '$d2' ORDER BY id ASC") or die('erreur. DEP ');
$nb_result=mysql_num_rows($q1);
if ($nb_result!== 0){
while($cool_18=mysql_fetch_array($q1))
{
$montant_depense=$cool_18['montant];
Echo $montant_depense ;
echo"<br>"; }
}}-
Désoler de vous avoir grandement dérangé.
parmi desinclude();
il ya des fonction dot celle-ci$mt111=number_format($mont,0,',',' ');
source du problème, j'ai résolu le problème en ajoutant juste le nombre des caratères après la virgure comme ceci:$mt111=number_format($mont,1,',',' ');
Encoure une fois de plus, merci de votre disponibilité et sens professionnelle de nous aider, Nous débutants.
Merci bien. -
Déjà, saches que tu utilises une très ancienne extension mysql pour relier ton code php à ta bdd ..
Désormais, il faut passer par PDO ou mysqli.
https://www.commentcamarche.net/faq/43261-php-l-extension-mysql-est-obsolete#top
Quoi qu'il en soit, je ne vois rien dans ton code qui pourrait tronquer les nombres issus de ta requête SQL.
Commence par refaire le code avec une extension "valide" ( moi je préfère PDO .. mais mysqli c'est bien aussi )
et reviens nous voir avec le code modifié.
NB: Tu pourras aussi faire un var_dump de ta variable $cool_18 pour voir ce qu'elle retourne ?
-