获取百分比关键字显示在表格中

时间:2013-03-06 18:47:52

标签: php mysql sql

我有一个充满推文的数据库表,其中一列是“主题”。当我将推文存储在数据库中时,我检查是否存在特定关键字,无论推文匹配哪一个,主题都会设置为该词。

  

我要检查的关键字: bieber,很糟糕

     

鸣叫: OMG我喜欢比伯!

     

主题存储: bieber

     
     

我要检查的关键字: bieber,很糟糕

     

鸣叫:这个吸尘真的很糟糕!

     

主题存储:糟透了

在我的网站上,我列出了这些主题在Twitter上的“声音”份额。见下文:

enter image description here

这基本上是(主题的数量='KEYWORD HERE')/(数据库中的推文总数)

条形图如下所示:

<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
?>

1 个答案:

答案 0 :(得分:1)

你能做2个查询吗?

select subject, count(*) as numTweets from tweets group by subject;
select count(*) as totalTweets from tweets;