1
データベースから結果を表示するための簡単な検索エンジンを作成しましたが、完全な単語ではなく類似の文字を含むすべての結果を表示する必要があります。たとえば、ユーザータイプengの場合、結果エンジンとそれ以外のengのすべての単語が返されるはずですが、現時点では、完全な単語を入力したときにのみ何かが返されます。engine.Guess私はどこかで間違いがありますが、 :私のコードがあります。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分でそれを受け入れるでしょう –
いくつかの他のオプションがありますが、またはそれ以上の文字を含むので、文字列の先頭または末尾にも単語があります。ここにもう少し... https://www.w3schools.com/SQl/sql_wildcards.asp –
ありがとうございました! –