这是我之前提出的SQL query returning wrong results
问题的后续问题问题的快速背景
在我的网站上,用户可以从32名玩家中选出一名玩家。首发阵容中有15个位置,因此在32名球员阵容中需要选择15名球员。 1位玩家可以玩多个位置
当我运行以下PHP查询时
$sql1 = mysql_query("SELECT * FROM `allsquads` WHERE `Team` = '$t1select'
AND `Position` = '$position[$i]'
OR `Secondary` = '$position[$i]'") or die(mysql_error());
问题
查询有效,但它不会返回仅来自用户所选团队$t1select
的玩家,它会显示我数据库中所有团队的玩家。
我知道如何解决这个问题或为什么会这样。
提前谢谢
答案 0 :(得分:2)
可能你应该像
一样编写查询$sql1 = mysql_query("SELECT * FROM `allsquads` WHERE `Team` = '".$t1select."'
AND ( `Position` = '$position[$i]'
OR `Secondary` = '$position[$i]' ) ") or die(mysql_error());
因为您的OR
条件介于Position
和Secondary
之间。正如您所写,将需要
`Team` = '".$t1select."' AND `Position` = '$position[$i]'
然后将Or
条件应用于该结果。
注意:自PHP 5.5起, mysql
函数已弃用,因此您需要使用mysqli
或PDO
语句。
答案 1 :(得分:0)
... WHERE Team = '$t1select'
AND '$position[$i]' IN (Position,Secondary)