我想将复选框与我的SQL select语句集成,但我不确定如何将数组转换为可用的选择。
<form method="post">
<input name="searchterm" type="search" placeholder="Enter Search Terms Here" />
<input name="searchbtn" type="submit" value="Karaoke Search" />
<input name="checkbx[]" type="checkbox" checked value="Chartbuster" />
<label>Chartbuster</label>
<input name="checkbx[]" type="checkbox" checked value="Sound Choice" />
<label>Sound Choice</label>
<input name="checkbx[]" type="checkbox" checked value="DKKaraoke" />
<label>DKKaraoke</label>
<input name="checkbx[]" type="checkbox" checked value="Sunfly" />
<label>Sunfly</label>
<input name="checkbx[]" type="checkbox" checked value="Karaoke Hits" />
<label>Karaoke Hits</label>
<?php
if(isset($_POST['searchterm']) and ($_POST['searchterm']!="")) {
$searchterm=$_POST['searchterm'];
$checkbx=$_POST['checkbx'];
$searchresults=$db->query("SELECT *
FROM 1KaraokeDJ
WHERE Artist LIKE '%$searchterm%'
GROUP BY Artist,
Title,
Brand
ORDER BY Artist,
Title,
Disc LIMIT 100");
}
...
?>
...
</form>
基本上,将搜索范围限制在所选复选框之一
中答案 0 :(得分:1)
您可以使用此功能(尽管如果您担心应用中的安全性,这不是最佳方法)
$checkbx = join(',',$checkbx);
然后这个变量应该适合您的查询。
另请删除圆括号,不需要它们:
$searchterm=($_POST['searchterm']);
$checkbx=($_POST['checkbx']);
成为
$searchterm=$_POST['searchterm'];
$checkbx=$_POST['checkbx'];
答案 1 :(得分:0)
经过一番头痛之后,我偶然发现了一些在类似问题中没有添加到任何答案的内容......
选择IN(&#39; a&#39;,&#39; b&#39;,&#39; c&#39; ...)需要&#34;&#39;&#34;&#34;围绕每个文本选项。在所有的例子中,它假设数字!
$ checkbx = join(&#39;,&#39;,$ checkbx);起初没有工作,因为数组中的每个文本项都必须有&#34;&#39;&#34;在加入之前。
因此,对我来说(可能是更好的解决方案)的解决方案是添加&#34;&#39;&#34;&#34;到我的每个复选框值:
{{1}}