2012-12-06 73 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