2012-12-06 75 views
0

我想構建一個使用html表單中的複選框的查詢。我不確定我是否應該創建一個數組,但在當前時間我只從其中一個複選框獲得結果。複選框爲mysql選擇查詢

這是我的複選框設置。

<input type="checkbox" name="color[]" value="Black">Black 
<input type="checkbox" name="color[]" value="Blue">Blue 
<input type="checkbox" name="color[]" value="Brown">Brown 
<input type="checkbox" name="color[]" value="Green">Green 
<input type="checkbox" name="color[]" value="Grey">Grey 
<input type="checkbox" name="color[]" value="Orange">Orange 
<input type="checkbox" name="color[]" value="Pink">Pink 
<input type="checkbox" name="color[]" value="Purple">Purple 
<input type="checkbox" name="color[]" value="Red">Red 
<input type="checkbox" name="color[]" value="Teal">Teal 
<input type="checkbox" name="color[]" value="White">White 
<input type="checkbox" name="color[]" value="Yellow">Yellow 

這裏是我的PHP和MySQL查詢

extract($_GET); 

$Color = $color[]; 

$query = "SELECT * FROM tblYarn WHERE Color ='".$Color."'"; 
$result = mysql_query($query) or die('Query failed: ' . mysql_error()); 

我想通過顏色來選擇紗和只獲得一次一個顏色。

這裏是我的顯示錶的代碼

echo "<table>\n"; 
while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) { 
echo "\t<tr>\n"; 
foreach ($line as $col_value) { 
echo "\t\t<td>$col_value</td>\n"; 
} 
echo "<td><img src=./images/$col_value border='3' ></td>"; 


echo "\t</tr>\n"; 
} 
echo "</table>\n"; 
+0

我想這沒有括號(顏色[]),並且仍然只得到了來自查詢 – user1883671

+1

顯示一種顏色' $ Color = $ color []'。沒有必要。只需使用'$ color',它已經由'extract'提供。 – wanovak

+2

你真的真的不應該使用extract()。你正在嘗試重新創建register_globals的糟糕糟糕的壞日子。不要懶惰。 –

回答

1

這應該工作:

extract($_GET); 

$query = "SELECT * FROM tblYarn WHERE Color IN ('" . implode("','",$color) . "')"; 
$result = mysql_query($query) or die('Query failed: ' . mysql_error()); 
+0

試過了,現在它壞了,什麼也沒有顯示 – user1883671

+0

'echo $ query'。那顯示了什麼? – wanovak

+0

其實我把所有的括號放回我的複選框顏色[],現在你的代碼工作。謝謝!! – user1883671