首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP增强搜索引擎

PHP增强搜索引擎
EN

Stack Overflow用户
提问于 2018-09-02 11:43:59
回答 1查看 58关注 0票数 1

我有这个搜索选项,在这里它查找标题和类别引用到表单请求的变量。

代码语言:javascript
复制
//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"    

我想让有能力的人也可以通过产品参考来搜索。

目标是,当用户插入引用时,它将自动进入产品。

添加此字段:

代码语言:javascript
复制
 $wherearr[]= "ads_reference LIKE '%$search_each%' AND ads_active = 1 AND ads_end = 0";

如何使用我以前创建的表单来完成它呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-09-02 13:17:16

我不确定我是否完全理解你的问题,但我会尽力的。

首先,尝试从GET请求中提取您想要的所有数据。

一些假设:

  1. 您使用了AND category_id = '$category',所以我假设$_GET['category']检索category_id。
  2. 在提取$_GET['search']时,可以获得按空格分隔的名称列表。因此,如果您有像foobar这样的名称,那么$_GET['search']将是"foo bar“。
  3. 如果category_id是空的,我假设$name包含引用

现在试试下面的代码:

代码语言:javascript
复制
$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;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52136702

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档