我正在尝试创建一个管理员通知系统,在我的数据库表中名为' 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;
?>
我知道这可能是完全错误的,但对这些东西很新,并试图在网上找到它但不太确定我真的明白该怎么做?
答案 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();