在我的網站上,用戶可以從32名玩家中選出一名玩家。首發陣容有15個陣容,因此需要選出32名球員陣容中的15名球員。SQL查詢返回錯誤結果
1播放器可以播放一個以上的位置,你可以在下面的圖片中看到:
現在,當用戶選擇了起跑線起來了隊內某些球員的名字,可以播放的超過1個位置(如上圖中)需要兩個位置顯示出來,不幸的是這是行不通的,你可以在下面的圖片中看到:
如果你看圖1,你可以看到Badden Kerr可以同時彈奏flyhalf和後衛。
的問題
在選擇列表中的玩家的次要地位不出來。作爲一個例子如果你再次看圖1,你可以看到Badden Kerr可以同時播放flyhalf和fullback。但第二圖像中後衛位置是空的,巴登Kerrs的名字沒有出現在他的次要位置(後衛)
當我運行在phpMyAdmin以下SQL statment:
SELECT *
FROM `allsquads`
WHERE `Team` = 'Blues'
AND `Position` = 'flyhalf'
AND `Secondary` = 'fullback'
我得到正確的結果返回,你可以在下面的圖片中看到:
然而,當我試圖在我的PHP代碼運行相同的SQL statment它給了我錯了/不想要的結果(正如你可以看到圖像2)
我的PHP代碼如下:
// assign each position to array variable position
$position = array(
"prop",
"hooker",
"prop",
"lock",
"lock",
"flank",
"flank",
"no8",
"scrumhalf",
"flyhalf",
"center",
"center",
"wing",
"wing",
"fullback"
);
// for loop to loop through the number of positions in the team, which will be used to query DB
$size = sizeof($position);
for ($i = 0; $i < $size; $i++) {
// Query For positions
$sqlprops = mysql_query("SELECT * FROM `allsquads`
WHERE `Team` = '$t1select'
AND `Position` = '$position[$i]'
OR `Secondary` = '$position[$i]'") or die(mysql_error());
新問題 當我做下面的查詢
SELECT * FROM `allsquads`
WHERE `Team` = '$t1select'
AND `Position` = '$position[$i]'
OR `Secondary` = '$position[$i]'") or die(mysql_error());
查詢現在顯示在兩個他們的位置上的球員,但它顯示其他玩家誰不在選拔隊伍中?
任何幫助或建議將不勝感激
預先感謝您
在您的查詢,這將轉化爲:'SELECT * FROM allsquads WHERE隊= '$ t1select' 和位置= 'flyhalf' 和二級=「flyhalf'',這就是它不工作 –
的原因@ICanHasCheezburger任何機會,你可以用PHP查詢指向我的正確方向 – Marilee
當我將其更改爲:'SELECT * FROM allsquads WHERE Team ='$ t1select' AND Position ='flyhalf' OR Secondary ='flyhalf' 「我得到正確的結果,但它顯示其他球隊的球員,以及......? – Marilee