2014-09-27 38 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