我有一個查詢來返回一個球員和他的一個Web應用程序的選擇。當我在MySQL中運行它時,我得到了我期望的結果:7名玩家和他們接下來5場比賽的選擇。但是,當我將它移入我的PHP腳本時,只有三名選手被選中。所有5個選擇,返回三個人,每次相同的三個人,而不是「前三個人」或「最後三個人」SQL Query在MySQL中返回完整結果,部分結果返回到PHP
我一直在這裏砸了我幾個小時。 ..
MySQL查詢:
SELECT Players.name, BowlTeams.team_name
FROM Players, BowlTeams, BowlGames, PlayerPicks
WHERE Players.ID = PlayerPicks.playerID AND PlayerPicks.win_team = BowlTeams.ID AND PlayerPicks.bowlID = BowlGames.ID AND
(BowlGames.ID = 42 OR BowlGames.ID = 41 OR BowlGames.ID = 40 OR BowlGames.ID = 39 OR BowlGames.ID = 38)
ORDER BY Players.name, BowlGames.ID DESC
PHP代碼:
try {
$stmt = $conn->prepare('SELECT Players.name, BowlTeams.team_name
FROM Players, BowlTeams, BowlGames, PlayerPicks
WHERE Players.ID = PlayerPicks.playerID AND PlayerPicks.win_team = BowlTeams.ID AND PlayerPicks.bowlID = BowlGames.ID AND
(BowlGames.ID = :bowl_zero OR BowlGames.ID = :bowl_one OR BowlGames.ID = :bowl_two OR BowlGames.ID = :bowl_three OR BowlGames.ID = :bowl_four)
ORDER BY Players.name, BowlGames.ID DESC');
$stmt->bindParam(':bowl_zero', $bowl0, PDO::PARAM_INT);
$stmt->bindParam(':bowl_one', $bowl1, PDO::PARAM_INT);
$stmt->bindParam(':bowl_two', $bowl2, PDO::PARAM_INT);
$stmt->bindParam(':bowl_three', $bowl3, PDO::PARAM_INT);
$stmt->bindParam(':bowl_four', $bowl4, PDO::PARAM_INT);
$stmt->execute();
$emparray = array();
while($row = $stmt->Fetch(PDO::FETCH_ASSOC)) {
$emparray[] = $row;
}
$stmt->closeCursor();
$stmt = null;
echo json_encode($emparray);
} catch(PDOException $e) {
echo "Oh no! Something f'd up! Error: " . $e->getMessage();
}
我一再的$ bowl0-4變量正確填充驗證(這會影響BowlTeams.team_name返回,這些都很好)。
我只是沒有得到我的所有球員回來......
感謝您的幫助,我在我束手無策。
ķ
我不是一個PHP的專家,但也許你會覆蓋結果數組,而不是推入它的條目... http://www.w3schools.com/php/func_array_push.asp –
此外,如果我分在實際PHP中參數的值,我收到相同的輸出(只有三名玩家返回)。 –