MySQL PHP-用于不同值输出的变量
我使用下面的查询来计算“期间”列中具有不同值的记录的数量。“时段”列包含“早餐”、“午餐”或“晚餐”,公式的输出按每月列分组,然后按每个不同的值分组一行: Ttl。反馈:早餐:XXX Ttl。反馈:午餐:XXX Ttl。反馈:晚餐:XXX 现在,我需要的是早餐、午餐和晚餐返回的每个总数的变量(参见$mydata['total'])。当前变量只返回每个不同值的总数,不允许我专门处理单个时段的分数MySQL PHP-用于不同值输出的变量,php,mysql,Php,Mysql,我使用下面的查询来计算“期间”列中具有不同值的记录的数量。“时段”列包含“早餐”、“午餐”或“晚餐”,公式的输出按每月列分组,然后按每个不同的值分组一行: Ttl。反馈:早餐:XXX Ttl。反馈:午餐:XXX Ttl。反馈:晚餐:XXX 现在,我需要的是早餐、午餐和晚餐返回的每个总数的变量(参见$mydata['total'])。当前变量只返回每个不同值的总数,不允许我专门处理单个时段的分数 <? $whereParts = array(); if ($prope
<?
$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
}
?>
您可以使用php函数,从$mydata变量中获取总和
<td class="result_ytd"><strong><?= array_sum($mydata); ?></strong></td>
唯一的问题是,数组中不能有任何其他值,但我认为这里就是这种情况。您不需要使用DISTINCT
,您需要GROUP BY
,它将具有相同值的所有条目放在同一条记录上,然后您只需要对每个条目进行计数:
选择period,count(period)as period\u count FROM FB\u Feedback\u Card\u Data WHERE…GROUP BY period
但如何将每个不同时段的输出放入变量中?我是否使用$row[0]、$row[1]等执行此操作?@Armitage2k我编辑了查询,以便更容易从数组中获取值。您可以这样做$periodName=$row['period'];$count=$row['period\u count'];