and*_*ndy 6 php mysql sql search mysqli
我正在尝试根据用户输入创建动态搜索查询.
现在我已经完成了我的研究,并且我发现了多种方法.但它们都不起作用,如果它们起作用,它们远非实用.
目前我正在创建一个这样的查询:
SELECT *
FROM assignments
WHERE (id = $id OR id = '')
AND (field1 = $field1 OR field1 = '')
Run Code Online (Sandbox Code Playgroud)
此查询有效,但仅在您填写所有字段时才有效.
我从stackoverflow文章中得到了这个,我找不到了,说:
如果用户填写了输入字段,它将检查第一个规则"id = $ input",如果用户没有指定任何输入,它将检查"id =''",当它检查时,它将回报一切.因为它逃脱了空搜索规则.
但正如你可能已经知道的那样,它不起作用..
你怎么建议我接近这个?
小智 12
尝试获取所有post vars并循环遍历它们以查看它们是否有效,然后构建查询
<?php
$id = $_POST[id];
$field1 = $_POST[field1];
$field2 = $_POST[field2];
$field3 = $_POST[field3];
$whereArr = array();
if($id != "") $whereArr[] = "id = {$id}";
if($field1 != "") $whereArr[] = "field1 = {$field1}";
if($field2 != "") $whereArr[] = "field2 = {$field2}";
if($field3 != "") $whereArr[] = "field3 = {$field3}";
$whereStr = implode(" AND ", $whereArr);
$query = "Select * from assignments WHERE {$whereStr}";
Run Code Online (Sandbox Code Playgroud)
这样的事情应该能够满足您的需求
| 归档时间: |
|
| 查看次数: |
7589 次 |
| 最近记录: |