Mysql
 sql >> база данни >  >> RDS >> Mysql

PHP &MySQL:Показване на СУМА от нещо, класифицирано по отделна категория

Можете да опитате с sql израз като този, за да СУМИРАТЕ стойностите, ГРУПИРАНЕ по колона:

SELECT SUM(value) as Total_val, category FROM tbl_transaction GROUP BY category

И можете да използвате това в PHP по следния начин:(Ще напиша с PDO, защото mysql_ командите остаряват в момента и не се препоръчват)

//Creating connection
$connection=new PDO("mysql:host=127.0.0.1;dbname=database_name","root","");

//Creating main query, fetching main categories
$query=$connection->prepare("SELECT category, SUM(value) as MAIN_CAT_TOTAL_VAL FROM tbl_transaction GROUP BY category");
$query->execute(); //executing query

foreach($query->fetchAll() as $q) //fetching results
{
    echo "<b>".$q["category"].":<br/></b>"; //printing main category name

    //creating second query which sums value column and groups by sub category
    $query2=$connection->prepare("SELECT SUM(value) as TOTAL_VALUE, sub-category FROM tbl_transaction WHERE category=:p1 GROUP BY sub-category");   
    $query2->bindParam(":p1",$q["category"],PDO::PARAM_STR); //binding parameter to second query
    $query2->execute(); //executing second query
    foreach($query2->fetchAll() as $q2) //fetching the results
    {
        echo $q2["sub-category"]." -> ".$q2["TOTAL_VALUE"]."<br/>"; //printing the results
    }

    echo "total amount of category ".$q["category"]." = ".$q["MAIN_CAT_TOTAL_VAL"];
    echo "<hr/>"; //cosmetics
}

Това трябва да работи, ако го редактирате правилно. Може да изглежда малко сложно, ако не сте сигурни как да използвате PDO, предлагам ви да го разгледате.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да откриете, че транзакцията вече е започнала?

  2. mysql_fetch_array() очаква параметър 1 да бъде проблем с ресурсите

  3. как мога да създам система за маркиране с помощта на php и mysql?

  4. Внедряване на единично влизане за три уебсайта в PHP?

  5. Flutter се свързва с база данни в сървъра