2014-09-27 41 views
0

我需要您的帮助以下代码。mysql-php计数与if条件

如果与prio_id 5不收门票,应该显示“OK”,当有一个或一个以上的票有更高的优先级应该是一个图像显示

<?php 
$alert = mysql_query("SELECT count(tn) AS Prio-Tickets FROM ticket where ticket_state_id = 1 AND ticket_priority_id = 5;"); 
while ($row = mysql_fetch_object($alert)) 
{ 
if ($row->Prio-Tickets = 0) 
{ 
echo 'OK'; 
} 
else 
{ 
echo '<img src="alert.gif"/>' 
} 
} 
?>  

回答

1

你目前assigning与单=标志,而不是comparing==

if ($row->Prio-Tickets == 0)


编辑:

请参阅spencer7593关于您正在使用的别名的回答。

+0

作品 - 谢谢。 – Stefan 2014-09-27 17:55:56

+0

你非常欢迎Stefan。您可以接受答案并将其标记为已解决,以下是** http://meta.stackexchange.com/a/5235/**并欢迎来到StackOverflow,* cheers *。 @Stefan – 2014-09-27 21:47:06

1

我们期望您正在运行的SQL语句抛出错误1064由于列别名中的破折号字符,您在SQL语法中有错误。

但可能你没有看到该错误,因为你没有检查查询是否成功。

要在标识符中使用破折号字符,您需要“转义”标识符; MySQL中的正常模式是将标识符包含在反引号字符中,或者使用不需要转义的标识符。

SELECT foo AS `Prio-Tickets` ... 

SELECT foo AS prio_tickets ... 

这是很好的做法,以检查从查询返回,并适当处理错误,而不是你的代码把它比喻小指到它的角的嘴邪恶博士的风格,“我只是会认为这一切都按计划进行,什么?“由于mysql接口已被弃用(新的开发应该使用mysqli或PDO接口),所以我不打算提供一个使用mysql接口的例子;在其他地方已经有很多例子。

+0

啊,是的,我也看到了,TBH,我对此并不完全确定。对于在别名周围使用反引号或使用下划线而不是连字符,你是对的。 +1 – 2014-09-27 17:14:16