php - MySQL PHP - 用于不同值输出的变量

标签 php mysql

我正在使用下面的查询来计算“Period”列中具有不同值的记录数量。 Period 列包含“Breakfast”、“Lunch”或“Dinner”,公式的输出按月列分组,然后每个不同的值一行:

TTL。意见反馈:早餐:XXX

TTL。反馈:午餐:XXX

TTL。意见反馈:晚餐:XXX

现在,我需要的是每个总数的变量(请参阅为早餐、午餐和晚餐返回的 $mydata['total']。当前变量仅返回每个不同值的总数,并且不让我专门针对个人期间得分。

    <?
    $whereParts = array();
    if ($property) {
        $whereParts[] = "Holidex = '$property' ";
    } 

    $whereParts = array();
    if ($outlet) {
        $whereParts[] = "Outlet = '$outlet' ";
    } 

    if ($pickyear) {
        $whereParts[] = "YEAR(Date) = '$pickyear' ";
    } 

    $sql = ("select distinct period from FB_Feedback_Card_Data");

    //BUILD THE FINAL QUERY
    if (count($whereParts) > 0) {
        $sql .= " WHERE " . implode('AND ', $whereParts);
    } 
    //count($whereParts) > 0

    $result = $mysqli->query($sql) or die('<p>Query to get case Period data from FB_Feedback_Card_Data table failed:' . mysql_error() . '</p>');

    while ($row = mysqli_fetch_row($result)) 
    {
        $period = $row[0];
        //echo "$status <br>";
        $mydata = stats("period", "$period", "$property", "$outlet", "$pickyear",$mysqli);

    ?>

<tr>
    <td class="result_desc"><?echo "Ttl. Feedback : $period";?></td>
    <td class="result"><? echo $mydata['a']; ?></td>
    <td class="result"><? echo $mydata['b']; ?></td>
    <td class="result"><? echo $mydata['c']; ?></td>
    <td class="result"><? echo $mydata['d']; ?></td>
    <td class="result"><? echo $mydata['e']; ?></td>
    <td class="result"><? echo $mydata['f']; ?></td>
    <td class="result"><? echo $mydata['g']; ?></td>
    <td class="result"><? echo $mydata['h']; ?></td>
    <td class="result"><? echo $mydata['i']; ?></td>
    <td class="result"><? echo $mydata['j']; ?></td>
    <td class="result"><? echo $mydata['k']; ?></td>
    <td class="result"><? echo $mydata['l']; ?></td>
    <td class="result_ytd"><strong><? echo $mydata['total']; ?></strong></td>
</tr>

<?
// end total status stats
}
?>

最佳答案

你不需要为此使用DISTINCT,你需要GROUP BY,它将所有具有相同值的条目放在同一条记录上,然后你只需要数一数:

SELECT period, count(period) as period_count FROM FB_Feedback_Card_Data WHERE ... GROUP BY period

复制代码

关于php - MySQL PHP - 用于不同值输出的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36594087/

相关文章:

php - 如何检测PHP脚本是否已经在运行?

php - CodeIgniter:如何使用克隆的网站源文件填充新数据库?

mysql - 从每个商店的产品价格表中获取产品的最低价格

php - SQL多表更新问题

php - PHP和SQLite-将某些列值相乘

php - Laravel 5.6,制作多个页面注册并将输入数据保存到 session

php - 使用 PHP 将任何给定的 MySQL SELECT 查询显示为 HTML 表

php - 重复 id 或其他记录的数组内的数组

php mysql-将 mysql_fetch_array() 结果放入字符串中并用逗号分隔字符串

PHP 类析构函数中的 mysql_query(无法建立到服务器的链接)