Empêcher à PHP d'arrondir les données à virgule MYQL

Résolu
BOB_BOOKSON Messages postés 21 Statut Membre -  
jordane45 Messages postés 40050 Statut Modérateur -
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.

A voir également:

2 réponses

jordane45 Messages postés 40050 Statut Modérateur 4 755
 
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...
0
BOB_BOOKSON Messages postés 21 Statut Membre
 
echo $_variable_contenant_la_valeur_a_afficher;  
0
yg_be Messages postés 24281 Statut Contributeur 1 584 > BOB_BOOKSON Messages postés 21 Statut Membre
 
bonjour,
et comment la valeur arrive-t-elle dans cette variable?
0
jordane45 Messages postés 40050 Statut Modérateur 4 755 > BOB_BOOKSON Messages postés 21 Statut Membre
 
il faut TOUT le code...
La requête SQL ...
Le code PHP qui exécute cette requête
Le code PHP qui récupère le résultat de la requête pour le mettre dans cette variable ...
Tout quoi....

Sinon comment penses tu qu'on puisse voir où se situe le problème ??!
0
BOB_BOOKSON Messages postés 21 Statut Membre > jordane45 Messages postés 40050 Statut Modérateur
 
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>"; }
}}
0
BOB_BOOKSON Messages postés 21 Statut Membre
 
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>"; }
}}
0
BOB_BOOKSON Messages postés 21 Statut Membre
 
Désoler de vous avoir grandement dérangé.
parmi des
include();
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.
0
jordane45 Messages postés 40050 Statut Modérateur 4 755
 
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 ?
0