我有一个充满推文的数据库表,其中一列是“主题”。当我将推文存储在数据库中时,我会检查是否存在特定的关键字,无论推文匹配哪个,主题都会设置为该词。
我正在检查的关键词:比伯,糟透了
推文:天哪,我爱比伯!
存储主题:比伯
我正在检查的关键词:比伯,糟透了
推特:这个真空吸尘器真的很烂!
存储主题:糟透了
在我的网站上,我列出了这些主题在 Twitter 上“声音”的份额。见下文:
这本质上是(number of tweets with subject = 'KEYWORD HERE') / (total tweets in database)。
条形图如下所示:
<div class="barChart" data-value="2" data-title="eCircle"></div>
我不是完成此任务的最佳 SQL 语句和 PHP。我可以暴力破解它并遍历每个单独的关键字,但我不想对我的数据库进行那么多调用......似乎很浪费。
我可以取回总计数,然后是一个大查询中每个关键字的计数吗?就像它作为数组或其他东西回来一样?
错误尝试:
<?php
include 'php/Connect.php';
$totalTweets = 0;
$ct = new Connect();
$con = $ct->connect();
$sql_query =
"SELECT COUNT(*) FROM tweets";
$res = mysql_query($sql_query, $con);
if (!$con | !$res) {
echo "Problems connecting...";
}
else {
mysql_close($con);
while($row = mysql_fetch_assoc($res)) {
$totalTweets = $row['count(*)'];
}
}
$sql_query =
"SELECT COUNT(*), subject FROM tweets
WHERE subject = 'KEYWORD HERE'";
$res = mysql_query($sql_query, $con);
if (!$con | !$res) {
echo "Problems connecting...";
}
else {
mysql_close($con);
while($row = mysql_fetch_assoc($res)) {
$firstKeyword = $row['subject'];
$firstKeywordCount = $row['count(*)'];
}
}
echo("<div class='barChart' data-value='".($firstKeywordCount/$totalTweets*100)."' data-title='$firstKeyword'></div>");
// CONTINUE THIS UNTIL ALL KEYWORDS/SUBJECTS HAVE BEEN DONE
?>