我试图从两个单独的表中检索两个计数到一个SQL查询以与PHP一起使用.这是当前的SQl查询:
SELECT COUNT(entryid) AS total FROM rh_entries UNION SELECT COUNT(pentryid) AS attended FROM rh_playerentries WHERE playerid=79
这是我用来利用数据的PHP:
$result = mysql_query($query);
$attendance = mysql_fetch_assoc($result);
echo "Total: " . $attendance['total']
. " Attended: " . $attendance['attended']
. " Percentage: "
. (int)$attendance['total'] / (int)$attendance['attended']
. "
";
我得到这个输出:
Warning: Division by zero in /home/content/g/V/i/gViscardi/html/guilds/sanctum/raidinfo/player.php on line 41
Total: 6 Attended: Percentage:
显然$出席[‘有人参加’]没有正确设置.我是否遗漏了UNION或COUNT或AS的工作原理?
解决方法:
Union将两个查询的内容组合到一个表中.您的查询具有不同的列名称,因此合并将无法正常工作.你会想要这样的东西:
SELECT
(SELECT COUNT(entryid) FROM rh_entries) as total,
(SELECT COUNT(pentryid) FROM rh_playerentries WHERE playerid=79) as attended;
标签:php,mysql,count,union
来源: https://codeday.me/bug/20190526/1158417.html