Nay*_*ila 0 php search codeigniter where
我正在根据搜索框中输入的字母提供的建议进行搜索.
例:
我在数据库中有这样的话:
salam, salavat, sabos, sandal, sefid, siah and ...
我在搜索框中输入:s- 显示这个词 - >salam, salavat, sabos, sandal, sefid, siah
现在如果键入:sa- 显示这个词 - >salam, salavat, sabos, sandal,
如果键入:sala- 显示这个词 - >salam, salavat
如果键入:salam- 显示这个词 - >salam
我正在使用jQuery事件.keyup()(keyup工作正常)并在后端使用codeigniter(在codeigniter中查询而不是我想要的).
查看我的查询(在此查询中,$find包含已输入的序列,我使用like关键字在数据库中进行搜索):
$find = $this->input->post('find');
$where = "date LIKE '$find' OR
name LIKE '$find' OR
star LIKE '$find' OR
address LIKE '$find' OR
number_phone LIKE '$find' OR
type LIKE '$find' OR
service LIKE '$find' OR
units LIKE '$find' OR
useradmin LIKE '$find'";
$query = $data['results'] = $this->db->query("SELECT @rownum:=@rownum+1 rownum, t.*
FROM (
SELECT *
FROM my_table
WHERE
$where
ORDER BY id desc
LIMIT $offset, $coun_page
) t,
(SELECT @rownum:=0) r");
Run Code Online (Sandbox Code Playgroud)
以下查询有效,但由于以下原因我无法使用它rownum:
$this->db->order_by("id", "desc")->like('name', $name)->get('my_table')
Run Code Online (Sandbox Code Playgroud)
我如何获得建议rownum?
LIKE要将子字符串与查询匹配,您需要使用通配符,在SQL中,它是百分比字符%.
例如
WHERE foo LIKE '%bar%'会找到列foo包含子字符串的所有行'bar'.
WHERE foo LIKE 'bar%'会找到列foo以子字符串开头的所有行'bar'.
WHERE foo LIKE '%bar'会找到列foo以子字符串结尾的所有行'bar'.
PS.在后面的刻度中包含列名称总是一个好主意,以避免与(可能)保留名称冲突,例如date和type.
SELECT `column1`, `column2` FROM `table` WHERE `column3` = 'value'
Run Code Online (Sandbox Code Playgroud)