php - 使搜索脚本循环遍历数组而不是文本输入值

标签 php mysql arrays search

$term = $_POST['term'];

$sql = mysql_query("SELECT * FROM tblCocktail WHERE Ingredients LIKE '%$term%'");

这是我用来从文本输入框中获取值并搜索我的数据库的代码的一部分。但是我想更改它,以便它循环遍历一个数组,而不是 %$term%,以便能够搜索多个选定的术语。

感谢任何帮助

-马特

最佳答案

您可以通过遍历数组来构造搜索表达式。

$search = '';
foreach ($_POST['term'] as $term) {
    $search .= " OR '$term'";
}
$search = preg_replace('/^ OR/', '', $search); // remove first OR

// Ingredients LIKE $search

但请注意,您应该使用准备好的语句而不是像这样的表达式来避免 SQL 注入(inject)。

希望对您有所帮助。

关于php - 使搜索脚本循环遍历数组而不是文本输入值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10238419/

相关文章:

MySQL - 优化列引用?

c++ - 读取数字列表并排序 C++

arrays - 在 JSON 列类型中查找数组的最后一个元素

c++ - 从数组指针获取奇怪的数字

php - 如何从 PHP 表单在 MySQL 表中插入\n 字符

php - 没有变量的爆炸

php - 如何在使用 PHP 更新查询的帮助下添加相同的值?

PHP,同时使用 $_FILES 和 $_POST 但它不工作

mysql - MariaDB/MySQL 比较所有列的 EXCEPT 替代方案

php - MySQL 错误 2014 的原因 Cannot execute queries while other unbuffered queries are active