良好的早晨'。 我一直在尝试制作一些东西"这将比较对战比例,但我在寻找与2名相同球员的比赛时陷入困境。
我发现了一些关于AND OR括号的内容,所以这里是我的sql查询
$ccc = "SELECT * FROM zapasy WHERE (playerName01 = '".$player1."' OR playerName01 ='".$player2."') AND (playerName02 = '".$player2."' OR playerName02='".$player1."')";
$result3 = $db->query($ccc);
$ids = array();
while ($row55 = $result3->fetch_assoc())
{
$ids[] = $row55['winner'];
}
但问题是,无论何时我试图获取数据,它都会给我提供比实际预期更多的索引。 这是在获取后打印数组值的结果。
Array ( [0] => 2 [1] => 3 [2] => 4 [3] => 5 [4] => 6 )
正如您在此处的数据库示例中所见,正如预期的那样只有2 3 4。 db sample
关于我做错了什么的任何建议?
答案 0 :(得分:1)
在where子句
中使用AND OR时出错了$ccc = "SELECT * FROM zapasy WHERE (playerName01 = '".$player1."' AND playerName02 ='".$player2."') OR (playerName01 = '".$player2."' AND playerName02='".$player1."')";
试试这个@Patrik Dano
答案 1 :(得分:1)
在MySQL中编写此代码的简单方法是使用元组:
where (?, ?) in ( (playername01, playername02), (playername02, playername01) )
?
用于参数。这应该是您将值传递给查询的方式。