我编写了一些代码来尝试从不同的表中获取多个列,并将它们连接在一起,然后将它们插入数组。当我在单个表和两个不同的表上执行此操作时,它有效,但是当我尝试对三个表执行此操作时,突然我得到的结果比我想象的要多。多很多。请看一下:
include('connect.php');
$arrayX = "pieces.pieceID,playerDeck.amount,playerPieces.amount/pieces, playerDeck,playerPieces/where playerDeck.playerName = 'playerName' and playerPieces.playerName = 'playerName' and pieces.name = playerDeck.name = playerPieces.name";
$arrayX = explode('/', $arrayX);
$column = $arrayX[0];
$table = $arrayX[1];
$where = $arrayX[2];
$myArray = explode(',', $column);
global $connect;
$fetch = mysqli_query($connect,"SELECT $column FROM $table $where");
$count = mysqli_num_rows($fetch);
while($row=mysqli_fetch_array($fetch,MYSQLI_NUM)){
$count --;
$arrayCount = count($myArray);
while($arrayCount > 0){
$arrayCount--;
$array[$count][$arrayCount]= $row[$arrayCount];
}
}
$count = count($array);
echo $count." rows";
预期输出:
32 rows
实际输出:
31744 rows
31,744/32 = 922。这意味着我得到了 922 个与我需要的行相同的副本。我不知道我到底做错了什么才能获得 922 份副本,也不知道这实际上是怎么可能的。如果有人能弄清楚我做错了什么,请指出。非常感谢。
最佳答案
请运行以下查询:
SELECT COUNT(*) FROM
pieces p INNER JOIN playerDeck pd
ON p.name = pd.name
INNER JOIN playerPieces pp
ON pd.name = pp.name
WHERE pd.playerName = 'playerName' AND
pp.playerName = 'playerName'
如果您得到 31744 行,您就会知道查询中的逻辑并不完全符合您的预期。
关于php - 从 2 个以上的表中获取列,然后将它们插入到数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30794043/