PHP查询给出了错误的结果

时间:2014-02-24 05:10:32

标签: php mysql sql

这是我之前提出的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的玩家,它会显示我数据库中所有团队的玩家。

我知道如何解决这个问题或为什么会这样。

提前谢谢

2 个答案:

答案 0 :(得分:2)

可能你应该像

一样编写查询
$sql1 = mysql_query("SELECT * FROM `allsquads` WHERE `Team` = '".$t1select."' 
                AND ( `Position` = '$position[$i]' 
                OR `Secondary` = '$position[$i]' ) ") or die(mysql_error());

因为您的OR条件介于PositionSecondary之间。正如您所写,将需要

`Team` = '".$t1select."' AND `Position` = '$position[$i]'

然后将Or条件应用于该结果。

注意:自PHP 5.5起, mysql函数已弃用,因此您需要使用mysqliPDO语句。

答案 1 :(得分:0)

... WHERE Team = '$t1select'
            AND '$position[$i]' IN (Position,Secondary)