-2
votes

Quel est le problème avec ce format de numéro?

Je veux faire écho aux valeurs d'une colonne MySQL, mais je veux obtenir les virgules dans les mille places. Ainsi, au lieu de recevoir «5 000», je reçois 5000. J'utilise Number_Format, mais cela semble être quelque chose de mal, car la console de navigateur montre «0,00» au lieu de la valeur que j'appelle via JQuery / Ajax. Quelques idées? J'ai inséré les chiffres comme chaînes. Exemple: ("Insert dans les valeurs des votes (votes) (" 10000 ")"; Peut-être que cela a quelque chose à faire?

Ceci est mon code PHP pour récupérer les données de MySQL: P>

$co = $_REQUEST['color'];

$sql = "SELECT SUM(votes) AS sum FROM Votes WHERE color = '$co'";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
$row = $result->fetch_assoc();
echo number_format($row["sum"], 2, ",", ".");
}
else {
echo "No result found";
}


6 commentaires

Si vous venez d'echo $ ligne ["somme"] , qu'est-ce que vous obtenez?


Exécution echo Number_Format ("5000", 2, "," ",". "); imprime le résultat attendu, alors je soupçonne qu'il y a quelque chose qui ne va pas avec $ ligne [" somme "]


Anis R. avec juste rangée ["somme"] Je reçois les valeurs, mais sans les virgules, je veux que les milliers de virgules.


Voir sur l'injection SQL et l'importance des requêtes préparées et liées


Et noter que lorsqu'une réponse s'est avérée utile d'une certaine manière, il est agréable de la remettre plutôt que de traiter le contributeur comme une sorte de laquais


Strawberry, ce n'est pas mon intention, je suis simplement habitué à ce site Web, je suis nouveau et j'essaie toujours d'apprendre certaines choses sur la programmation Web.


3 Réponses :


2
votes

simplement faire number_format ("5000") et vous obtiendrez 5 000 en conséquence.

extrapolé à votre exemple, ce sera:

number_format ($ ligne ['somme'])

Ainsi, par exemple, si $ rangée [SUM '] est de 5 000, vous obtiendrez 5 000 comme sortie.


10 commentaires

Je passe une variable avec Ajax, donc je ne peux pas mettre 5000. J'essaie de récupérer une valeur d'une table mysql. Comprenez vous?


Je pensais que vous pouvez l'extrapoler, je suppose que vous êtes un débutant, désolé. Vient de modifier la réponse.


JoelboneTR, j'ai essayé Number_Format ($ Row ['SUM']), mais il reçoit 0,00 dans la console du navigateur.


Vous travaillez avec PHP dans l'exemple, donc si vous obtenez 0,00 dans la console du navigateur, vous pouvez avoir une erreur d'une autre partie. Je l'ai testé avec différents nombres avant de poster et que la fonction PHP fonctionne comme prévu. Vous avez peut-être une manipulation de JavaScript que les données pouvant fournir?


Jetez également w3schools.com/php/...


Joeslbonetr, j'ai ajouté les valeurs numériques telles que des chaînes de la table MySQL, pensez-vous que cela pourrait être le problème?


Je ne pense pas vraiment que cela peut causer un problème ici


Eh bien ... il peut s'il y a un caractère non numérique. Quelles valeurs avez-vous sur votre DB? Toutespace, virgule ou similaire?


Ok, cela a bien fonctionné. Mais je devais supprimer la méthode numéro () de l'appel Ajax pour l'utiliser. Et je veux que cette méthode NUMBER () renvoie 0 si la valeur est une .


Supposons que ce soit un autre problème, cette fois en JavaScript. Si le problème décrit ici est effectué, reportez-vous aussi que résolu et écrivez un nouveau avec votre problème JS et votre code JS



1
votes

Eh bien, dans PHP, ce que vous faites déjà est la bonne façon de le faire, je ne sais pas pourquoi vous obtenez une mauvaise sortie.

mais vous pouvez également essayer de formater le numéro directement à partir de mysql: xxx

en faisant cela, $ ligne ["somme"] devrait être directement formaté.

Si même cela ne fonctionne pas, vous avez probablement probablement un problème sur le côté client.


3 commentaires

Ok, quand je le fais, je reçois Nan dans la console du navigateur. Encore une fois, j'ai inséré les chiffres dans la table MySQL en tant que chaînes. Pensez-vous que c'est le problème?


Ok, ça a bien fonctionné. Mais comment puis-je montrer uniquement les virgules sans les décimales?


@ Joesmith Remplacez simplement le format 2 dans (somme (vote), 2) par 0 (il s'agit du nombre de points décimaux que vous souhaitez).



0
votes

Utilisez numer_format ($ ligne ["somme"], 2, '.' '' '' ');


0 commentaires