ツイートでいっぱいのデータベーステーブルがあり、列の1つが「件名」です。ツイートをデータベースに保存するとき、特定のキーワードの存在を確認し、ツイートが一致するものはどれでも、件名はその単語に設定されます。
私がチェックしているキーワード:ビーバー、吸う
ツイート: OMGビーバーが大好き!
保存された件名:ビーバー
私がチェックしているキーワード:ビーバー、吸う
ツイート:この真空は本当によく吸います!
保存された件名:吸う
私のサイトでは、これらの主題によるTwitterの「声」のシェアをリストアップしています。下記参照:
これは基本的に(件名='KEYWORD HERE'のツイートの数)/(データベース内のツイートの総数)になります。
棒グラフは次のようになります。
<div class="barChart" data-value="2" data-title="eCircle"></div>
私はこれを達成するための最良のSQLステートメントとPHPではありません。私はそれを総当たり攻撃して個々のキーワードを調べることができますが、データベースにそれほど多くの呼び出しをしたくありません...無駄に思えます。
合計数を取得してから、1つの大きなクエリで各キーワードの数を取得できますか?配列か何かとして戻ってくるように?
悪い試み:
<?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
?>