0
我一直以來在幾年前如果搜索字符串包含
// get the q parameter from URL
$q = $_REQUEST["q"];
$hint = "";
session_start();
require ('connect.php');
$get_qst = mysql_query("SELECT question FROM questions WHERE question LIKE '%$q%'") or die(mysql_error());
if (mysql_num_rows($get_qst) >= 1) {
while ($qst = mysql_fetch_array($get_qst)) {
$a[] = $qst['question'];
}
}
else {
$a[] = "";
}
// Fill up array with names
// lookup all hints from array if $q is different from ""
if ($q !== "") {
$q = strtolower($q);
$len = strlen($q);
foreach ($a as $name) {
if (stristr($q, substr($name, 0, $len))) {
if ($hint === "") {
$hint = $name;
}
else {
$hint .= "<br /> $name";
}
}
}
}
// Output "no suggestion" if no hint were found
// or output the correct values
echo $hint === "" ? 'No questions found, <a href="javascript:void(0);" id="btn_askqst" onclick="$(\'#qst\').val($(\'#search_qst\').val());">ask question?</a>' : $hint;
什麼代碼所做的是一個輸入字段比較數據庫中的行使用這個小模板。問題是,例如,如果我在數據庫中有一個問題,說「你喜歡PHP還是ASP?」有人搜索「PHP或ASP?」它會說沒有問題。這是因爲它不檢查單個單詞,它只檢查句子的開始。所以對於我來說,我需要按照正確的順序編寫每一個單詞,儘管我不需要寫出整個問題。
我該如何檢測該單詞是否在問題中呢?
我很抱歉不好解釋。英語不是我的第一語言,我真的不知道如何解釋這一點。
[**請不要在新代碼中使用'mysql_ *'函數**](http://bit.ly/phpmsql)。他們不再被維護[並被正式棄用](https://wiki.php.net/rfc/mysql_deprecation)。看到[**粉紅色框**](http://j.mp/Te9zIL)?學習[*準備的語句*](http://j.mp/T9hLWi),並使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/ mysqli) - [這篇文章](http://j.mp/QEx8IB)將幫助你決定哪個。如果你選擇PDO,[這裏是一個很好的教程](http://j.mp/PoWehJ)。 – h2ooooooo