如何使用php显示每个相同类别的小计

时间:2016-10-24 09:00:16

标签: php

$stmt = mysqli_query($connection, $sql);

if($stmt === false) {
  die( print_r( mysqli_errors(), true) );
}

$category1 = 0;
$category2 = 0;
$category3 = 0;
$category4 = 0;
$category5 = 0;
$category6 = 0;
$category7 = 0;
$category8 = 0;

while($row = mysqli_fetch_array($stmt)) {

   if(strcasecmp($row['fruit_name'], 'apple') == 0) {
         $category1++;
   }
   if(strcasecmp($row['fruit_name'], 'banana') == 0) {
         $category2++;
   }
   if(strcasecmp($row['fruit_name'], 'cherry') == 0) {
         $category3++;
   }   
   if(strcasecmp($row['fruit_name'], 'dragon fruit') == 0) {
         $category4++;
   } 
   if(strcasecmp($row['fruit_name'], 'eastern hawthorn') == 0) {
         $category5++;
   } 
   if(strcasecmp($row['fruit_name'], 'finger lime') == 0) {
         $category6++;
   } 

   $sum = $row['total_fruit'] + $sum;

   $output .= '<tr>
             <td>' . $row['fruit_name'] . '</td>
             <td align=center>' .$row['total_fruit'] . '</td>
            </tr>';       
}
$output .= '<tr><td>$sum</td></tr></table>';

echo $output;

如何在同一类别的最后一行显示相同类别['fruit_name']的每个小计。我总共有6类水果。 如何在同一类别的最后一行显示每个相同类别['fruit_name']的小计。我总共有6类水果。

fruit_name | total_fruit
Apple      |      1
Apple      |      1
Apple      |      1
Subtotal   |      3
Banana     |      1
Banana     |      1
Banana     |      1
Subtotal   |      3
Total      |      6

1 个答案:

答案 0 :(得分:0)

您可以尝试使用此更改循环,但只有在例如所有苹果都是一个接一个的情况下它才会起作用:

$current = 0;
while($row = mysqli_fetch_array($stmt)) {
    $last = false;

   if(strcasecmp($row['fruit_name'], 'apple') == 0) {
         $category1++;
         if($current > 0 && $current != 1) {
            $output .= '<tr>
             <td>Subtotal</td>
             <td align=center>' .$category{$current} . '</td>
            </tr>';
            $current = 1;
         }
   }
   if(strcasecmp($row['fruit_name'], 'banana') == 0) {
         $category2++;
         if($current > 0 && $current != 2) {
            $output .= '<tr>
             <td>Subtotal</td>
             <td align=center>' .$category{$current} . '</td>
            </tr>';
            $current = 2;
         }
   }
   if(strcasecmp($row['fruit_name'], 'cherry') == 0) {
         $category3++;
         if($current > 0 && $current != 3) {
            $output .= '<tr>
             <td>Subtotal</td>
             <td align=center>' .$category{$current} . '</td>
            </tr>';
            $current = 3;
         }
   }
   if(strcasecmp($row['fruit_name'], 'dragon fruit') == 0) {
         $category4++;
         if($current > 0 && $current != 4) {
            $output .= '<tr>
             <td>Subtotal</td>
             <td align=center>' .$category{$current} . '</td>
            </tr>';
            $current = 4;
         }
   }
   if(strcasecmp($row['fruit_name'], 'eastern hawthorn') == 0) {
         $category5++;
         if($current > 0 && $current != 5) {
            $output .= '<tr>
             <td>Subtotal</td>
             <td align=center>' .$category{$current} . '</td>
            </tr>';
            $current = 5;
         }
   }
   if(strcasecmp($row['fruit_name'], 'finger lime') == 0) {
         $category6++;
         if($current > 0 && $current != 6) {
            $output .= '<tr>
             <td>Subtotal</td>
             <td align=center>' .$category{$current} . '</td>
            </tr>';
            $current = 6;
         }
   }

   $sum = $row['total_fruit'] + $sum;

   $output .= '<tr>
             <td>' . $row['fruit_name'] . '</td>
             <td align=center>' .$row['total_fruit'] . '</td>
            </tr>';
}
$output .= '<tr><td>$sum</td></tr></table>';

echo $output;