str="输入的字符串"
sql="select * from table name like '%"&str&"%' or middle like '%"&str&"%' or lastname like '%"&str&"%'"
sql="select * from table name like '%"&str&"%' or middle like '%"&str&"%' or lastname like '%"&str&"%'"
但是,输入的字串很有可能是三者中的两个或者三个,您的方法只是解决了输入一个的问题。
if "什么情况下" then
sql=sql&"name like '%"&str&"%' "
end if
if "什么情况下" then
sql=sql&"or middle like '%"&str&"%'"
end if
就是用的那个例子?多谢了!
如果字段中没有。就不显示记录。。
那么我有可能输入其中的一个,也就是说,我输入的字串就是name,middlename,lastname三者之一。
但是,还有其他两种情况是如果我输入name middlename 或者 name middlename lastname的话
那您告诉我的那个方法就不行了。
name里面有12345 middlename里面有67890 lastname里面有abcde您告诉我的那个方法只适合于输入小于或者等于三个字段里的任何一个
比如输入不大于 12345 或者67890或者abcde都没问题。但是,如果我输入123456ab的话,您这个方法就不适用了。
str=rs(0)&rs(1)&rs(2)
str1=instr(str,"你要找的字符串")
就这样。
sql语句。更本就实现不了。
记录也循环不出来。。
看不明白。我也没办法。。
我真的尽最大的努力了。大哥。
再多问一句,sql里面,难道就没有让三个字段合并后,然后对收入字段进行匹配的语句或者函数?
T_T
5555555555555555555555555
$sql="SELECT * FROM `表名` WHERE CONCAT( `name` , `middle`, `lastname` ) LIKE '%".$str."%'";
注意
CONCAT( `name` , `middle`, `lastname` )中的“`”不能替换成" ' 也不能没有用 ` 括起来的表示是数据库表名、字段名
用 " '括起来的表示字符串
最后一个问题,因为录入有可能有人录入了空格,我记得取出字串中的空格应该是ltrim()吧?
可是怎么没作用啊?另外,如果CONCAT('name','middle','lastname')这样的话,什么都选不出来,如果去掉 ' 这个符号,就可以了
可是怎么没作用啊?rtrim, trim
用三个更好,
但“`”不能略去的
$str=传递来的字符串(名字);
$sql="SELECT * from `表名` WHERE CONCAT(`name`,`middle`,`lastname`) like '%".$str."%' or concat(`name`,`lastname`,`middle`) like '%".$str."%' or concat(`middle`,`name`,`lastname`) like '%".$str."%' or concat(`middle`,`lastname`,`name`) like '%".$str."%' or concat(`lastname`,`name`,`middle`) like '%".$str."%' or concat(`lastname`,`middle`,`name`) like '%".$str."%'";
就两头输入的空格可以去除,中间的还是不成啊
$text=str_replace("\t","",$text);
$text=str_replace(" ","",$text);
$text=str_replace("\n","",$text);
去掉全部空格
$text=preg_replace("\s","",$text);
去全部空格
$text=preg_replace("/\s+/","",$text);