回答

收藏

SQL查询返回错误结果

技术问答 技术问答 165 人阅读 | 0 人回复 | 2023-09-12

在我的网站上,用户可以从32名球员中选择球员。首发阵容中有15个位置,因此需要从32个球员阵容中选择15个球员。) p! O8 S$ ^# W4 o: h8 q* C( _3 I8 W# Q
如果你看图1,你会发现Badden Kerr飞头和后卫可以同时击中。8 q2 w' [- \# [+ K* u
问题
( y: O2 t  Q# \5 L& C* s' @在选择列表中,玩家的次要位置没有显示。例如,如果您再次查看图像1,您将看到它Badden8 {, D5 S. [& {( p/ T9 T, ^$ t! o
Kerr飞头和后卫可以同时发挥。但在第二张照片中,后卫是空的,Baden Kerrs名字没有出现在次要位置(后卫)
2 M4 N6 [% ?/ a" E# j0 t0 X: I当我在Phpmyadmin中运行以下sql语句时:
# p7 M& ~2 R- R+ a4 v' tSELECT *FROM `allsquads`WHERE `Team` = 'Blues'AND `Position` = 'flyhalf'AND `Secondary` = 'fullback'您可以在下图中看到返回的正确结果: + o4 z& S0 w/ R8 w1 l" L

( r" P/ `7 |8 r但是,当我试着在我的时候PHP同样的代码运行SQL句子会给我错误/不想要的结果(如果你在image2中看到的)
% J% M  o4 o: v3 j我的PHP代码如下:
9 H& ?3 |# z4 ~5 t, |5 lwhich will be used to query DB        $size     = sizeof($position);        for ($i = 0; $i 新问题    当我执行以下查询时," k  B  a; r1 w! X
SELECT * FROM `allsquads`                                WHERE `Team` = '$t1select                                        AND `Position` = '$position[$i]                                      OR `Secondary` = '$position[$i]'") or die(mysql_error());查询现在显示两个位置的球员,但是显示团队中没有其他球员?
3 m# H8 J! K9 k% v0 D8 c5 K7 F任何帮助或建议都将非常感激& v" i) J( v8 A" A) b) @$ k
先感谢您$ Q& |0 i) T+ t9 M
                                                                9 b8 Q& G6 @/ X4 ]) |
    解决方案:                                                                9 k( h( Q/ L) [
                                                                因为你有它来设置你PHP代码查询不会产生预期的结果Position,并Secondary以相同的值。根据您提供的示例数据,该数据不会返回任何内容。
! \, k2 K! A) s* S% l如果您正在寻找查询来选择合格的玩家参加比赛,您可以将查询改为以下形式:
: C5 ?' L* g0 s' ASELECT * FROM `allsquads` WHERE `Team` = '$t1select'  AND (`Position` = '$position[$i]' OR `Secondary` = '$position[$i]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则