繁体   English   中英

PHP查询给出了错误的结果

[英]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条件将介于PositionSecondary之间。正如您所写,它将需要

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM