2017-03-03 3 views
1

데이터베이스에서 결과를 표시하는 간단한 검색 엔진을 만들었지 만 정확한 단어가 아닌 비슷한 문자가 포함 된 모든 결과를 표시해야합니다. 예를 들어 사용자 유형 eng 인 Soo는 결과 엔진과 eng가 포함 된 다른 모든 단어를 반환해야하지만 현재는 단어를 모두 입력 할 때만 결과를 반환합니다. 엔진은 어딘가에 있지만 실수는 있지만 실제로는 찾을 수 없습니다. : 내 코드가있다.SQL "LIKE"선택기는 검색 엔진에서 "="처럼 작동합니다.

<?php 

$fsearch = ""; 
if (!empty($_GET['fsearch'])){ 

$fsearch=$_GET['fsearch']; 

$query = "SELECT * FROM food_data_bg WHERE "; 
$terms = explode (" ",$fsearch); 
$i=0; 
foreach($terms as $each){ 
     $i++; 
    if($i == 1){ 
     $query .= "title LIKE '$each'"; 
    } 
else{ 
     $query .= "OR title LIKE '$each'"; 
    } 
} 

    $hostname = "localhost"; 
    $username = "name"; 
    $password = "pass"; 
    $databaseName = "dbName"; 
    $connect = new mysqli($hostname, $username, $password, $databaseName); 
    $connect->set_charset("utf8"); 
     $query = mysqli_query($connect,$query); 

     $num_rows = mysqli_num_rows($query); 
      if($num_rows > 0){ 
      while($row = mysqli_fetch_assoc($query)){ 
       $title = $row["title"]; 
       $fimage = $row["fimage"]; 
       $carbs = $row["carbohydrates"]; 
       $fats = $row["fats"]; 
       $proteins = $row["proteins"]; 
       $CaloriesTotal = $row["calories total"]; 
       echo " 
        <table id='table1'> 
        <tbody> 
        <tr class='Table1-row2'> 
        <td><a><img src='$fimage'</a></td> 
        <td>$title</td> 
        <td>$carbs</td> 
        <td>$fats</td> 
        <td>$proteins</td> 
        <td>$CaloriesTotal</td> 
        </tr> 
        </tbody> 
        </table>"; 
        } 
       } //got "else" claim here,but i don't think the mistake is in it... 
      } 
?> 

아무 도움이나 조언을드립니다. < 3 고마워요!

답변

1

LIKE에 제대로 작동하려면 와일드 카드가 포함되어야합니다. 당신은 문자열에서 그 단어를 찾고 있다면 그래서, 당신은 아무것도 ... (어떤 종류의 0 개 이상의 문자)와 일치합니다

$query .= "title LIKE '%".$each."%'"; 

퍼센트 (%)를 같은 것을 할 수 있습니다.

+0

와우 나는 그것이 무엇인가 쉽다는 것을 알았지 만 그것이 무엇인가와 일치하는 것을 알지 못했다. 정확히 내가 필요한 것을 고맙다. <3 윌 7 분 안에 받아 들일 것이다. –

+0

다른 옵션이 있지만 퍼센트는 0을 의미한다. 또는 더 많은 문자를 포함 할 수 있으므로 문자열의 시작 부분이나 끝 부분에서도 단어를 찾을 수 있습니다. 여기 좀 더 ... https://www.w3schools.com/SQl/sql_wildcards.asp –

+0

정보 주셔서 감사합니다! –

관련 문제