我在向此查询添加where子句时遇到问题。我希望从“SAT AM / SUN PM”列中选择“是”以及“确认”列为“是”的位置进行选择。
这没有'WHERE shift_times ='SAT AM / SUN PM' - 它没有输出任何东西:
$query = "SELECT position, COUNT(confirmed) FROM volConfirm WHERE shift_times='SAT AM/SUN PM' GROUP BY position";
$result = mysql_query($query) or die(mysql_error());
// Print out result
while($row = mysql_fetch_array($result)){
echo "There are ". $row['COUNT(confirmed)'] ." ". $row['position'] ." " . $row['shift_times'] . " volunteers.";
echo "<br />";
更多信息: 该表包含以“是”或“0”(否)确认的记录,并且shift_times是SAT AM / SUN PM或SAT PM / SUN AM。有几个不同的立场。我试图显示最终结果,如so-ish:
“SAT AM / SUN PM”有“30”“艺术”志愿者
“SAT PM / SUN AM”有“30”“艺术”志愿者
理想情况下,行会旋转,因此下面的回波将是“SAT PM / SUN AM”的反向数据 - 但这看起来有点棘手......
答案 0 :(得分:3)
我将您的select语句更改为按班次选择和分组,因此每个班次将按每个班次选择一行。 我在你的count()中添加了一个别名'cnt',并更新了php以在echo语句中使用cnt 在while循环结束时没有结束括号(可能是复制和粘贴问题)
$query = "SELECT COUNT(confirmed) as cnt
, position
, shift_times
FROM volConfirm
WHERE confirmed='yes'
GROUP BY shift_times, position
order by shift_times, position";
$result = mysql_query($query) or die(mysql_error());
// Print out result
while($row = mysql_fetch_array($result))
{
echo "There are ". $row['cnt'] ." ". $row['position'] ." " . $row['shift_times'] . " volunteers.";
echo "<br />";
}