我有这个搜索选项,在这里它查找标题和类别引用到表单请求的变量。
//This could be Reference or Product Name
$name = mysqli_real_escape_string($con, sanitize($_GET['search']));
//this could be a specific category or Empty(used to reference number)
$category = mysqli_real_escape_string($con, sanitize($_GET['category']));
$x = 0;
$q = str_replace(array("\\",";"), "", $name); // remove ALL backslashes & remove ALL ";" -> for sql security: no (simple) injection of commands
$q = trim($q);
$search_exploded = explode(" ", $q);
foreach($search_exploded as $search_each ) {
$x++;
if($x == 1) {
$wherearr[]= "ads_title LIKE '%$search_each%' AND category_id = '$category' AND ads_active = 1 AND ads_end = 0";
} else {
$wherearr[]= "ads_title LIKE '%$search_each%' AND category_id = '$category' AND ads_active = 1 AND ads_end = 0";
}
}
//$wherearr[] is used to create a new variable $construct to insert to SQL like "Select * from Where $construct" 我想让有能力的人也可以通过产品参考来搜索。
目标是,当用户插入引用时,它将自动进入产品。
添加此字段:
$wherearr[]= "ads_reference LIKE '%$search_each%' AND ads_active = 1 AND ads_end = 0";如何使用我以前创建的表单来完成它呢?
发布于 2018-09-02 13:17:16
我不确定我是否完全理解你的问题,但我会尽力的。
首先,尝试从GET请求中提取您想要的所有数据。
一些假设:
AND category_id = '$category',所以我假设$_GET['category']检索category_id。$_GET['search']时,可以获得按空格分隔的名称列表。因此,如果您有像foo和bar这样的名称,那么$_GET['search']将是"foo bar“。category_id是空的,我假设$name包含引用现在试试下面的代码:
$name = mysqli_real_escape_string($con, sanitize($_GET['search']));
$category_id = mysqli_real_escape_string($con, sanitize($_GET['category']));
$q = str_replace(array("\\",";"), "", $name);
$search_exploded = explode(" ", trim($q));
$wherearr = array();
$querySufix = " AND ads_active = 1 AND ads_end = 0";
foreach($search_exploded as $search_each) {
if ($category_id)
$wherearr[]= "ads_title LIKE '%$search_each%' AND category_id = '$category_id '" . $querySufix;
else
$wherearr[]= "ads_reference LIKE '%$search_each%'". $querySufix;
}https://stackoverflow.com/questions/52136702
复制相似问题