으로 바꿉니다. 기본 사전 시작 db 쿼리를 수정해야합니다.PHP의 공백을 %
public function ajaxProcessCheckProductName()
{
if ($this->tabAccess['view'] === '1')
{
$search = Tools::getValue('q'); /* in this variable, i wish subsitute the space with % */
$searchmod = str_replace(" ", "%", $search);
$id_lang = Tools::getValue('id_lang');
$limit = Tools::getValue('limit');
$result = Db::getInstance()->executeS('
SELECT DISTINCT pl.`name`, p.`id_product`, pl.`id_shop`
FROM `'._DB_PREFIX_.'product` p
LEFT JOIN `'._DB_PREFIX_.'product_lang` pl
ON (pl.`id_product` = p.`id_product` AND pl.`id_lang` = '.(int)$id_lang.')
WHERE pl.`name` LIKE "%'.pSQL($searchmod).'%"
GROUP BY pl.`id_product`
LIMIT '.(int)$limit);
die(Tools::jsonEncode($result));
}
}
내가 %와 kawasaki racing filter
같은 변수에 공간을 대체 할, 그래서이 완료 와일드 카드 DB에 쿼리를 할 수있는 ...
예 : 나는 다음을 시도했습니다 사용자를 검색 kawasaki racing filter
, kawasaki%racing%filter
으로 바꾸려면 %kawasaki%racing%filter%
...
접근 방식이 올바른 것으로 보입니까? 그것은 지금 작동하지 않습니다 :(
이누군가가 나를 도울 수 있습니까? 사전에 감사!
SQL의 와일드 카드는 매우주의해야합니다. 그들은 당신의 질의를 나 빠지게 할 것이다. DB가 크다면 사용이 느려질 것입니다. 절대적으로 필요한 경우가 아니면 사용하지 마십시오. – Spudley