php - 我如何在下面的代码中进行 LIKE 搜索?

标签 php mysql

我有以下代码,类似于具有多个输入的表单搜索引擎,其中结果在字符数等方面有点绝对(完美匹配) .

// build array of field names=============================================================================
$fields=array('user','customer','vessel','country',
             'port','eta','service_station','type_of_service',
             'case_reference','status');

// initialize empty array for WHERE clauses
$wheres=array();

// loop through field names, get POSTed values,
// and build array of WHERE clauses, excluding false values
foreach ($fields as $field) {
  // get existing field value from POST, mark missing or empty value as FALSE
  ${$field} = isset($_POST[$field]) && trim($_POST[$field])!=''
      ? trim($_POST[$field]) : false;

  // add to array of WHERE clauses only if value is not FALSE
  if (${$field}) { $wheres[]="$field='".${$field}."'"; }

}

// build SELECT statement from WHERE clauses
$sql="SELECT * FROM jobs WHERE ".
     (!empty($wheres) ? implode(" AND ",$wheres) : '1=1').
     ";";

我想要做的是在表单中添加输入

<label for="special">Special Search</label>
            <input type="text" name="special" id="special_search">

用户可以在case_reference字段中搜索并获取与前四个字符匹配的结果。另外,就 AND 或 OR 以及 TRUE 或 FALSE 语句而言,我希望这个新输入与其他输入一样工作。

感谢所有帮助,提前谢谢:)

更新:我没有重写整个内容,而是在上一篇文章的开头提出了以下代码:

$joker = $_POST['special'];
$joker1 = substr($joker1, 0, 4);
if(isset($_POST['case_reference']) && !empty($_POST['case_reference']) 
                                    && empty($_POST['special'])) {

} else { $_POST['case_reference'] = $joker1; }

它现在可以工作,但任何人都可以确认它将来会没问题吗?

最佳答案

来自 SQL:

$sql="SELECT * FROM jobs WHERE ". (!empty($wheres) ? implode(" AND ",$wheres) : '1=1').";";

只需添加一个特殊变量:

$special = $_POST['special']; // this will get the data from the textbox

然后将其添加到sql语句中

$sql="SELECT * FROM jobs WHERE LIKE $special 'aaaa%' AND ". (!empty($wheres) ? implode(" AND ",$wheres) : '1=1').";";

关于php - 我如何在下面的代码中进行 LIKE 搜索?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20242370/

相关文章:

php - 将 mysql 调用/发布到表中

php - 根据子类在父类中包含类

mysql - 为什么这两个表合并为一个表并集,在 MySQL 中显示无效结果?

php - 使用 fgetcsv 读取 CSV 文件时出现 UTF-8 问题

javascript - 这里我有一个 HTML 表单和 PHP MySQL 表,在表中输入值并按下提交按钮后,没有出现输出

mysql - WHERE条件是否扫描整个表?

mysql - 如何在安装在 MySql 4 之上的 MySql 5 上启用 inno-db 支持?

php - 将 SQL 语句转换为 Joomla 格式时遇到问题

php - MySQL 和 PHP - 创建多个父子关系

phpMyAdmin导入文件大小限制2M