2015-09-08 45 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_ *”功能,正在“死亡”。 –