嗨,大家好,我试图了解使用复选框搜索数据库的最佳方法是什么。我对此并不陌生,一直在看教程等,但是似乎找不到任何有帮助的东西。我可以做一个搜索引擎,搜索我的数据库并返回我需要的东西,但是我不知道如何使用复选框。例如:
我的数据库包含以下内容:
MovieName: ...
Gen1: ...
Gen2:...
Gen3:...
Gen4:...
etc
现在就像我在上面说的那样,我将其与搜索框配合使用,用户可以在其中编写一个简单的阶段(例如动作),它将弹出具有动作类型的电影,但是我不知道如何使用复选框来完成。
HTML:
<form action = "movie.php" method = "post">
<input type="checkbox" name = "search" value="action" checked> Kale<br>
<input type="checkbox" name= "search" value="comdey" checked> orange<br>
<input type="submit" value="Submit">
</form>
<?php echo("$output");?>
我的数据库名称TestHere和表称为test。如果您希望看到我的搜索功能,可以在完成此事项或任何建议方面提供任何帮助,但可以将其发布,但我认为这不会对复选框的搜索功能有所帮助
正如@apokryfos提到的那样,您需要执行以下操作:
<input type="checkbox" name="genres[]" value="genre1" />
<input type="checkbox" name="genres[]" value="genre2" />
<input type="checkbox" name="genres[]" value="genre3" />
Then in your PHP
<?php
$str = array();
$fields = array('gen1','gen2','gen3');
foreach ($_POST['genres'] as $genre){
foreach ($fields as $gen){
$str[] = "$gen LIKE '%".mysql_real_escape_string($genre).'%"';
}
}
$str = implode(' OR ',$str);
$query = mysql_query("SELECT * FROM test WHERE movieName LIKE '%$searchq%' $str") or die("Could not search.");
?>
值得一说的是,尽管这应该工作,但LIKE并不是最好的搜索方法,因为它必须遍历每个字符串。实际上,如果整个字符串是提供的流派,则应使用='',这样也可以实现更好的索引。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句