Erreur sur division : A non well formed numeric value encoun

Résolu
CorentinRoche Messages postés 271 Date d'inscription   Statut Membre Dernière intervention   -  
jordane45 Messages postés 38484 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,

Après pas mal de recherche je bloque sur une erreur, dû à une division que j'essaye de faire ..

Voici le maximum d'info,
    echo $a;
    echo "<br>";
    echo $b;
    
    $c = $a / $b;
    echo $c;


Les variables A est B proviennent de deux requêtes SQL, qui ont comme valeur si je les affiches avec un écho :


Je me suis dit que cela venait potentiellement du formatage avec l'espace entre le 9 et le 1 de "9 186.73". J'ai donc rajouter ça mais pareil..
$a = str_replace(' ', '', $a);


J'ai également essayer en remplaçant le point par une virgule. Mais pas mieux...
$a = str_replace('.', ',', $a);


J'ai trouver pas mal de forum qui en parle mais par rapport à un problème liée à des dates..

Une idée?

Erreur complète :


Merci d'avance


Configuration: Windows / Opera 84.0.4316.42


A voir également:

1 réponse

jordane45 Messages postés 38484 Date d'inscription   Statut Modérateur Dernière intervention   4 751
 
Bonjour
Actuellement tu retournes une chaîne de caractères (Une string)
Penche-toi sur la fonction PHP floatval

D'ailleurs, pourquoi as-tu stocker des valeurs dans un champ VARCHAR dans ta base de données...
Si ce sont des nombres que tu dois stocker utilise un champ le type float... Effet tu as division directement dans ta requête SQL plutôt que de vouloir la faire ensuite en PHP.
0
CorentinRoche Messages postés 271 Date d'inscription   Statut Membre Dernière intervention   40
 
Bonjour,

J'ai bien modifier le champ en float.


Par contre j'ai toujours l'erreur;

    echo $a;
    echo "<br>";
    echo $b;
    
    $c = $a / $b;
    echo $c;


Pourquoi je ne fait pas le calcul dans une requête ?
Car mes deux variables, A et B sont déjà le résultat d'une requête dont j'ai besoins autres pars.
Je me suis donc dis que je pouvais les utiliser.. au lieu de refaire une troisième requêtes..

A :
SELECT SUM(montant_ht) AS total_montant_ca_ht FROM Factures WHERE YEAR(dat_e) = '. $annee_selectionner .''


B :
SELECT COUNT(*) AS NB FROM Factures WHERE YEAR(dat_e) = '. $annee_selectionner .''
0
jordane45 Messages postés 38484 Date d'inscription   Statut Modérateur Dernière intervention   4 751 > CorentinRoche Messages postés 271 Date d'inscription   Statut Membre Dernière intervention  
 
Tu peux regrouper tu es de requête à et b dans une seule... Et y faire directement ton calcul
0