2015-09-08 69 views
0

因此,我試圖讓查詢計算該位置的玩家總數,如果他們在相同的位置和在線。但我目前的查詢返回0.不知道要嘗試什麼,一直卡住了幾天。如何用條件計算多行

​​
+0

第一個查詢的目的是什麼? – Barmar

+1

'user_info.location'確實包含城鎮名稱,還是包含'location'表中的'id'? – Barmar

+0

請顯示一些示例表格內容和預期結果。 – Barmar

回答

0

這是你的問題:

$totPlayers = mysql_query("SELECT COUNT(*) AS player_total FROM `user_info` WHERE `location` = '$town' AND `online` = '1'"); 

你必須在引號代替反引號 「在線」。

+0

^這解決了我的問題。 DERP。 謝謝! – Segarac

+0

@Segarac如果是這樣,請按我的答案打勾。如果你想要,你也可以給我一個upvote。 –

0

請記住,PHP的mysql_ *函數正在死亡,切換到mysqli或pdo之類的東西或其他東西。在我提交的代碼中查看我的評論。 告訴我,如果它的工作。乾杯。

include('connect.php'); 

$town = $info['location']; 

$grabTown = mysql_query("SELECT * FROM `location` WHERE `name` = '$town'"); 

// Added error check 
if (!$grabTown) { 
    die('Invalid query: ' . mysql_error()); 
} 

$t = mysql_fetch_array($grabTown); 

// Changed '' to `` on { 'online' } and removed '' from { '1' } 
// Don't know if removing '' on { '1' } is required. I think it's fine either way. 
$totPlayers = mysql_query("SELECT COUNT(*) AS player_total FROM `user_info` WHERE `location` = '$town' AND `online` = 1"); 

// Added error check 
if (!$totPlayers) { 
    die('Invalid query: ' . mysql_error()); 
} 

$totalPlayers = mysql_fetch_array($totPlayers); 
$playersTotal = $totalPlayers['player_total']; 
+0

當插入數字時,你可以帶或不帶引號 - 但你應該澄清你的第一個禮貌。 MySQL當然不會死去 - 它是世界上使用最廣泛的RDB,它只是PHP的「mysql_ *」功能,正在「死亡」。 –