[英]PHP query giving wrong results
这是一个关于上一个问题的后续问题,我问SQL查询返回错误的结果
问题的快速背景
在我的网站上,用户可以从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
玩家,它会显示我数据库中所有团队的玩家。
知道如何解决这个或为什么会发生这种情况。
先感谢您
也许你应该写你的查询
$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
语句。
... WHERE Team = '$t1select'
AND '$position[$i]' IN (Position,Secondary)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.