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 고마워요!
와우 나는 그것이 무엇인가 쉽다는 것을 알았지 만 그것이 무엇인가와 일치하는 것을 알지 못했다. 정확히 내가 필요한 것을 고맙다. <3 윌 7 분 안에 받아 들일 것이다. –
다른 옵션이 있지만 퍼센트는 0을 의미한다. 또는 더 많은 문자를 포함 할 수 있으므로 문자열의 시작 부분이나 끝 부분에서도 단어를 찾을 수 있습니다. 여기 좀 더 ... https://www.w3schools.com/SQl/sql_wildcards.asp –
정보 주셔서 감사합니다! –