Erreur sur division : A non well formed numeric value encoun

Résolu/Fermé
CorentinRoche Messages postés 271 Date d'inscription mercredi 1 juin 2016 Statut Membre Dernière intervention 12 juin 2023 - Modifié le 5 avril 2022 à 22:36
jordane45 Messages postés 38446 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 28 février 2025 - 6 avril 2022 à 11:17
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 38446 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 28 février 2025 4 737
5 avril 2022 à 23:15
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 mercredi 1 juin 2016 Statut Membre Dernière intervention 12 juin 2023 40
Modifié le 6 avril 2022 à 10:30
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 38446 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 28 février 2025 4 737 > CorentinRoche Messages postés 271 Date d'inscription mercredi 1 juin 2016 Statut Membre Dernière intervention 12 juin 2023
6 avril 2022 à 11:17
Tu peux regrouper tu es de requête à et b dans une seule... Et y faire directement ton calcul
0