0

私が取り組んでいるクイック検索バーコードがあり、次のようになります。

searchbar.php:

<form method="post" action="search.php">
<input type="text" name="search" />
<input type="submit" />
</form>

search.php:

<?php
include("config.php");
$search = mysql_real_escape_string($_POST['search']);
$data = mysql_query("SELECT * FROM shop WHERE name LIKE '%$search%' OR id LIKE '%$search%' OR description LIKE '%$search%' OR keywords LIKE '%$search%' ORDER BY id DESC ") or die(mysql_error());
while ($info = mysql_fetch_array($data)) {
    $name = stripslashes($info['name']);
    $desc = stripslashes($info['description']);
    Print "<h3><a href=\"result.php?product=".$name."\">".$name."</a>: <font color=\"#cd0000\">".$desc."</font></h3><br>";
}
echo $name;
?>

結果.php:

<?php
$result = $_GET['product'];
echo $result;
?>

私の質問は、私の検索でワイルドカードを使用することです。誰かが「foo bar」という 2 つの単語を検索したとします。私の考えでは、言葉は正確にその順序で並んでいる必要があり、何かが現れるには間にスペースが必要です。「foo」と「bar」という単語がどこかにある場合(隣り合っていなくても)、検索パラメータ内で結果が表示されるようにする方法はありますか?また、単語の順序が「bar foo」の順序で逆になっている場合にも機能するようにします(これも隣同士ではありません)。

4

3 に答える 3

0

これを使用して、クエリからスペースを削除できます

str_replace('  ' , '' , $string );

ここでは、最初のパラメーターでスペースを探し、2 番目のパラメーターで空白を置き換え、3 番目のパラメーターで作業したい文字列を読み込みます。

お役に立てれば。

于 2013-08-29T14:53:38.057 に答える