1
我被要求向客戶端添加一個小AJAX功能。基本上我有3場一個MySQL表:空格分隔MySQL字符串搜索
- ID
- 產品
- 名
該網站的想法是,用戶開始輸入「姓名」,產品在幾次擊鍵後出現。我的查詢如下所示:
$query = mysql_query("SELECT product FROM mytable WHERE name LIKE '%".$search."%'");
一切正常,除非在「名稱」中有空格。例如,如果我有一個名爲「可口可樂」的名稱,那麼當我鍵入「Coca」時,該腳本會成功列出產品,但只要鍵入該空格,它就不會返回任何行。
我到處尋找解決方案。我知道這個空間被解釋爲某種類型的分隔符,但是我可以讓數據庫把這個空間解釋爲......那麼......一個空間?如果沒有,是否有更好的方式來完成我想完成的任務?
編輯:
我跑了它在phpMyAdmin,它實際上返回正確的結果,這使我相信,這一定是什麼東西在PHP。那裏有完整的腳本:
$search = $_GET['search'];
$already_echoed = array();
if (!ereg('[^A-Za-z0-9]', $search) && strlen($search) > 2) {
$query = mysql_query("SELECT product FROM mytable WHERE name LIKE '%".$search."%'");
if (mysql_num_rows($query) > 0) {
echo '<h4>Suggestions:</h4><ul>';
while ($product = mysql_fetch_array($query)) {
if (!in_array($product['product'], $already_echoed)) {
$getProduct = mysql_query("SELECT name, shortname FROM products WHERE id='".$product['product']."'");
$product2 = mysql_fetch_array($getProduct);
echo '<li><a href="http://' . $product2['shortname'] . '.mydomain.com">' . $product2['name'] . '</a></li>';
$already_echoed[] = $product['product'];
}
}
echo '</ul>';
}
}
我很確定我不相信那是發生了什麼事。 「可口可樂%」應該匹配「可口可樂」。你確定沒有其他處理?你能打印出一個實際執行的示例查詢嗎? – 2011-01-13 11:09:25