Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/237.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php SQL查询以计算来自另一个查询的出现次数?_Php_Sql - Fatal编程技术网

Php SQL查询以计算来自另一个查询的出现次数?

Php SQL查询以计算来自另一个查询的出现次数?,php,sql,Php,Sql,我有一些将数据输出到html表的代码。我正在尝试创建一个列,显示intQAID定义的特定问题的答案总数。由于$result是在同一个php脚本中定义的查询,我如何运行第二个查询来运行“mysql\u num\u rows”来计算该问题的答案数 $result = mysql_query("SELECT * FROM tblQA WHERE cCategory = 'Football' AND (TO_DAYS(CURDATE()) - TO_DAYS(dPostDateTime) < 1)

我有一些将数据输出到html表的代码。我正在尝试创建一个列,显示intQAID定义的特定问题的答案总数。由于$result是在同一个php脚本中定义的查询,我如何运行第二个查询来运行“mysql\u num\u rows”来计算该问题的答案数

$result = mysql_query("SELECT * FROM tblQA WHERE cCategory = 'Football' AND (TO_DAYS(CURDATE()) - TO_DAYS(dPostDateTime) < 1) ORDER BY dPostDateTime DESC, intQAID DESC");


while($row = mysql_fetch_array($result))
{
echo "<tr>";
echo "<td>" . $row['intQAID'] . "</td>";
echo "<td>" . $row['cUsername'] . "</td>";
echo "<td>" . $row['dPostDateTime'] . "</td>";
echo "<td>" . Num of Responses . "</td>";
echo "<td><a href=answer.php?id=" . $row['intQAID'] . ">" . $row['cBody'] . "</a></td>";
echo "</tr>";
}
echo "</table>";

不知道你的结构,这是做一些猜测工作

SELECT *, (SELECT count(*) 
           FROM answers_table at 
           WHERE at.intQAID = tqa1.intQAID) as answercount 
FROM tblQA tqa1 
WHERE cCategory = 'Football' 
    AND (TO_DAYS(CURDATE()) - TO_DAYS(dPostDateTime) < 1) 
ORDER BY dPostDateTime DESC, intQAID DESC");

然后您只需在想要显示它的位置引用$row['answercount'.

不知道您的结构,这是在做一些猜测工作

SELECT *, (SELECT count(*) 
           FROM answers_table at 
           WHERE at.intQAID = tqa1.intQAID) as answercount 
FROM tblQA tqa1 
WHERE cCategory = 'Football' 
    AND (TO_DAYS(CURDATE()) - TO_DAYS(dPostDateTime) < 1) 
ORDER BY dPostDateTime DESC, intQAID DESC");

然后您只需在想要显示它的地方引用$row['answercount'.

使用SELECT*有什么原因吗?这是一个不使用子选择的查询。加入第二个表,选择所需的列并将它们放在GROUPBY子句中,然后替换*


更新:使用左联接,并计算外键的出现次数,以查找没有答案的结果。

使用SELECT*是否有原因?这是一个不使用子选择的查询。加入第二个表,选择所需的列并将它们放在GROUPBY子句中,然后替换*

更新:使用左联接,并计算外键的出现次数,以查找没有答案的结果