0
votes

Comment obtenir le compte (*) de la bonne façon en PHP

J'ai essayé de compteur () les données de la base de données avec PHP, mais cela ne me montre pas les données totales, mais il affiche les données.

Voici comment je compte xxx

quand i vari_dumb il indique int (1) int (1) int (1) pas int (3) que ce que J'ai voulu.

en fait, je veux compter $ Calculer avec les données dans $ Total tandis que devrait être le flotteur et le montant de $ total < / code> que je veux divisé avec ID de compte

existe une solution sur laquelle compter le montant de $ Total et peut être divisé par compte $ ID qui devrait être 3 ?. S'il vous plaît aider

Qu'est-ce que j'essaie vraiment de faire de cet exemple de table est comme 45.84 + 75.45 + 34.54 / 3


9 commentaires

S'il vous plaît montrer votre structure de table et attendu.


Veuillez également poster la requête que vous faites dans la base de données.


La table devrait être comme ci-dessus


Et la requête, je pense que c'est déjà raison parce que je reçois des données, comme Select * à partir du tableau . Je ne comprends tout simplement pas comment prendre les données à calculer


Qu'est-ce que "total_puas" dans votre table? S'il vous plaît essayez de montrer la structure de la table. Ou pouvons-nous considérer que votre table a deux champs id et total?


Oui, vous pouvez considérer comme ça. il flotte au total et l'identifiant n'est que d'habitude


Je veux juste obtenir les données pour le compter comme Total $ $ [0] + $ Total [1] + $ Total [3] / 3 et obtenez le résultat après avoir calculé que les données qui sont toujours Soyez mis à jour car il n'est pas toujours 3 et la valeur totale $ n'est pas la même. Mais quand je prends le nombre de compteurs ($ id), ce n'est pas 3 mais 111


Note latérale: Vous devriez essayer d'être cohérent lorsque vous écrivez le code. Vous mélangez actuellement le style «Standard» si (...) {...} et le style alternatif si (...): ... endif; . Des choses comme ça rend votre code plus difficile à lire.


@Qwithonly, la déclaration $ Résultat-> Num_Rows est le nombre total de résultats renvoyés. Vous n'avez pas besoin de calculer le compte à nouveau.


3 Réponses :


2
votes

Vous pouvez essayer ce code:

<?php
$i = 0;
$total =0.00;
if ($result->num_rows > 0) {
    while ($row = $result->fetch_array()):
       if ($row["privilege"] == 2) :
          $total = $total + $row["total"];
          $i++;
       endif;
    endwhile;
    echo $total."<br>";
    echo $i."<br>";
    echo  $calculate = $total / $i;
}

?>

output
=====================================
 $total = 155.83;
 $i = 3;
 $calculate = $total/$i;
 $ans = 51.943333333333;
=====================================


5 commentaires

Il a la même sortie lorsque var_dump (compte ($ résultat))


il fonctionne réellement, cela peut prendre les données avec $ Résultat-> num_rows mais il obtient 4 car je n'ai besoin que des données lorsque privilège = 2 qui est 3 en ce moment. et il a répété obtenir les données 3 fois parce que je mets dans si privilège = 2


En fait, je veux calculer 45,84 + 75,45 + 34,54 / 3. Est-ce possible?


Cela fonctionne réellement, mais il dit Variable non définie: Total in / Applications / XAMPP / XAMPFFILE /.......< / Code> Avez-vous une idée pourquoi?


désolé monsieur, pas une idée



3
votes

sonne comme si vous voulez un comptez () avec groupe par dans votre requête. Faire Count ($ ID) dans PHP donnera toujours un, comme il n'est pas un éventail de valeurs. xxx

à partir de votre question mise à jour, la sortie devient un peu plus claire. Basé sur les données de sortie et le résultat que vous désirez, vous souhaitez calculer la somme de tous les total_paus , divisé par le nombre de lignes. Vous pouvez le faire directement dans une requête, comme celle-ci xxx


2 commentaires

Est-ce que cela signifie que je dois sélectionner le nom de la ligne 1 par 1? parce que lorsque j'ai essayé SQL SELECT Count (ID) en tant que CNT, Mitra. *, utilisateur.Asername, user.privilege, utilisateur.name de Mitra interne Joindre utilisateur sur mitatra.id_user = user.id il ambigu


ID est ambigu dans le compteur () , alors pour vous, avec la jointure, il devrait être compter (user.id) (ou tout Autre colonne, le nombre de lignes est le même de toute façon).



0
votes

Vous pouvez essayer ce code:

$query = "SELECT * FROM table"
$result = $connection->query($query);

if ($result->num_rows > 0) {
    $total = 0.0;
    foreach ($result as $row) :
        $id = "" . $row["id"] . "";
        $total = $total + $row['total'];
    endforeach;
    $calculate = $total / $result->num_rows;
    echo $total.<br>;
    echo $calclulate;
}


0 commentaires