2017-02-11 31 views
0

嗨stackoverflow社區, 我在PHP中使用Mysql全文搜索時遇到問題。下面的代碼正在工作,但是,它會爲每個單個匹配關鍵字返回多個文章。我想爲每個關鍵字返回一篇不同的文章,並按相關性排序。Mysql在PHP中返回多個值的全文搜索

截屏下面的代碼

enter image description here

代碼

 function relatedArticle($item, $category){ 
      global $con; 

     $keywords=removePrepositions($item); 

     $keyword_tokens = explode(' ', $keywords); 

      $x=0; 
      $query_result=''; 
     foreach($keyword_tokens as $item) { 

      $x++; 
      $construct = " "; 
      $construct=$item; 

     $query = "SELECT DISTINCT * FROM apps WHERE Match(title) AGAINST ('$construct' IN NATURAL LANGUAGE MODE) and Type = '$category' LIMIT 4"; 

     $query_result=$con->query($query) or trigger_error($con->error."[$query]"); 

     echo"<div id='Big_container_rel'>"; 
      echo"<div id='container_rel'>"; 
     while($row=$query_result->fetch_array()){ 

      echo"<div id='container1_rel'>"; 

      $AdTitle=pre_replace($row['title']); 
      $type= strtolower(pre_replace($row['Type'])); 

      echo"<a href='/".$type."/".$row['appId']."/".$AdTitle."/'><img id='imgMobi' alt=".$row['title']." src='uploads/".$row['image']."'/></a>"; 
      echo"<br/><h4><a href='/".$type."/".$row['appId']."/".$AdTitle."/'>".$row['title']."</a></h4>"; 

      echo"</div>"; 


      } 
      echo"</div>"; 
     echo"</div>"; 

     }    

     } 

請幫我解決這個問題。

回答

0

我設法解決這個問題

function relatedArticle($item, $category){ 
       global $con; 

      $keywords=removePrepositions($item); 

      $keyword_tokens = explode(' ', $keywords); 

       $query_result=implode(',', $keyword_tokens); 
       $construct=''; 

      $construct=$query_result; 
      $query = "SELECT DISTINCT * FROM apps WHERE Match(title) AGAINST ('$construct' IN NATURAL LANGUAGE MODE) and Type = '$category' limit 4"; 

      $query_result=$con->query($query) or trigger_error($con->error."[$query]"); 

      echo"<div id='Big_container_rel'>"; 
       echo"<div id='container_rel'>"; 
      while($row=$query_result->fetch_array()){ 

       echo"<div id='container1_rel'>"; 

       $AdTitle=pre_replace($row['title']); 
       $type= strtolower(pre_replace($row['Type'])); 

       echo"<a href='/".$type."/".$row['appId']."/".$AdTitle."/'><img id='imgMobi' alt=".$row['title']." src='uploads/".$row['image']."'/></a>"; 
       echo"<br/><h4><a href='/".$type."/".$row['appId']."/".$AdTitle."/'>".$row['title']."</a></h4>"; 

       echo"</div>"; 


       } 
       echo"</div>"; 
      echo"</div>"; 



      } 

什麼是prouding屏幕截圖

enter image description here

+0

你是怎麼解決的?什麼是腳本中的問題? – denny

+1

我已重新編輯答案。 Commpare這兩個屏幕截圖。無論在全文搜索的每個關鍵字中找到article關鍵字的次數,它都會返回一篇文章。我已經刪除了創建循環並完美工作的foreach。 –

+0

每行代表在第一個屏幕快照中找到的每個關鍵字。我希望能回答你 –