PHP -对字符串中的特定字符进行IF检查,以便与SQL数据库中的数据进行比较


PHP - do IF checks on certain chars in a string to compare with from data in SQL db

我正在开发一个建议工具:当用户在文本字段中键入一个字符时,该字符将被发送到脚本(使用AJAX)并在SQL DB中进行检查。如果DB中的任何条目与用户输入匹配,则返回它们。

但是我被困在了浏览用户输入字符串;

我需要逐个检查DB中每一行的所有字符。

所以我在想:

1.)获取字符串的字符长度并将其放入$string_count

2.)定义$count=0;

3.)执行while循环,并在$count超过或等于$string_count时停止。

$det=mysql_fetch_array()

5.),然后我可以从第1行获得数据(名称),并检查它的第一个字符是否与用户输入的第一个字符匹配(我不知道如何做)。

6)。如果在正确的位置包含正确的字符,则在"($possible.=$det['id'].",";)

"后面以逗号添加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文档)