连续计算1或0的数量并显示它们?

时间:2014-03-21 13:05:20

标签: php mysql database rows

我正在尝试创建一个管理员通知系统,在我的数据库表中名为' siteconfig'我有一行名为setting =' adminalerts'在这一行中将是某些警报列,例如:

nauseralert(未激活的用户警报) 0或1 mmsitealert(维护模式站点警报) 0或1

依旧...... 我正在尝试编写一些能够计算连续0或1的数量并将值显示为数字的内容。因此,如果上述两个都设置为1,则值为(2),如果只有1个警报处于活动状态,则为(1)。如果没有激活警报,那么它将显示为(0)等...这是我试图尝试的代码,但它似乎不起作用?希望在这里有一点帮助!谢谢!

<? 
 $sitealerts = mysql_query("SELECT * FROM siteconfig WHERE setting='adminalerts'");
      $adminalerts = mysql_num_rows($sitealerts);
if ($nonactivated < 0){

     echo 'Admin Alerts';
    } else {
     echo 'No Alerts';
    }
     echo $adminalerts;
?>

我知道这可能是完全错误的,但对这些东西很新,并试图在网上找到它但不太确定我真的明白该怎么做?

2 个答案:

答案 0 :(得分:1)

您必须访问列才能计算出正确的值:

$sitealerts = mysql_query("SELECT * FROM siteconfig WHERE setting='adminalerts'");

//if the query was OK
if($sitealerts) {

    //loop through all result rows
    while(FALSE !== ($row = mysql_fetch_assoc($sitealerts))) {

        //do the calculation
        $count = 0;
        $count += intval($row['nauseralert']);
        $count += intval($row['mmsitealert']);
        if($count > 0) {
            print $count;
        }
        print '<br />';
    }
    mysql_free_result($sitealerts);
}

答案 1 :(得分:0)

在PHP 5.5 http://php.net/manual/en/changelog.mysql.php中不推荐使用mysql 最好使用mysqli。

$mysqli = new mysqli("localhost", "my_user", "my_password", "world");
// checking connection
if (mysqli_connect_errno()) {
    exit();
}
if ($result = $mysqli->query("SELECT (nauseralert+mmsitealert) as alerts_count FROM siteconfig WHERE setting='adminalerts'")) {
    while ($row = $result->fetch_row()) {
        if($row['alerts_count']) 
           echo $row['alerts_count'];
        else echo ' ';
    }
    $result->close();
}
$mysqli->close();