我正在开发一个建议工具:当用户在文本字段中键入一个字符时,该字符将被发送到脚本(使用AJAX)并在SQL DB中进行检查。如果DB中的任何条目与用户输入匹配,则返回它们。
但是我被困在了浏览用户输入字符串;
我需要逐个检查DB中每一行的所有字符。
所以我在想:
1.)获取字符串的字符长度并将其放入$string_count
$count=0;
3.)执行while循环,并在$count超过或等于$string_count
时停止。
5.),然后我可以从第1行获得数据(名称),并检查它的第一个字符是否与用户输入的第一个字符匹配(我不知道如何做)。
6)。如果在正确的位置包含正确的字符,则在"($possible.=$det['id'].",";
)
7。)给父while循环中的$count ($count++;
)加1。
7.)循环将继续,在每一行,但显然每次都改变char,直到没有更多的字符要检查…
我只是在脑海中写下了这些,现在我迷路了。我认为这是完全错误的,有更简单的方法吗?但你们能告诉我我的方向对不对吗?
我需要知道如何对字符串中的某个字符进行检查。例如:
$my_str="my name is nav nav";
现在我想获得该字符串中的第四个字符(即"n")。
有什么建议吗?
谢谢。
$my_str="my name is nav nav";
$charAt= $my_str{3};
echo $charAt;
//outputs n (strings are 0 indexed)
编辑:也等待,直到用户输入至少三个字符,只做一个数据库查询使用LIKE每次:
SELECT * FROM example WHERE age LIKE '$userinput%'
http://www.htmlite.com/mysql011.php (优化这是另一回事)
我不太明白你的做法,但我想这么做…
如果用户字符串的长度超过一定的阈值(例如3个字符),则通过AJAX将整个用户输入字符串发送到DB。
服务器端执行SELECT * FROM example WHERE field LIKE CONCAT(?, '%')
。的吗?表示一个绑定参数,以确保您不会遭受SQL注入问题。(有关准备语句的更多信息,请参阅PHP的PDO文档)