主题:  关于PHP中百分号的问题

肤浅对白

职务:普通成员
等级:1
金币:1.0
发贴:163
#12003/2/3 0:17:02
想做一个关于关键字查询的页面,用PHP制作。
书上的方法是:
$page_size = 10;        //每页显示的记录数
if($page<=0) $page=1;        //当前页数

$mylink=mysql_connect("localhost","root","root");    //根据自己计算机上的设置修改
mysql_select_db("personal",$mylink);
$sql = "select * from address where ".$zd." like '%".$key."%' order by name";
$result = mysql_query($sql,$mylink);
……//后面的全是关于怎么设置页面显示的 就此省略。

问题1:$sql = "select * from address where ".$zd." like '%".$key."%' order by name" 这里的 %号表示什么意思?like又是做用什么用的?
要说明的是zd表示的是字段:就是实现查询比如说 名字或公司名两个选择的字段。key是指代关键字。
不知道我这样说的清楚了没有 这里有原文件,请打开看search.php

非常奇怪的是当我用DW MX做的时候 却会出现问题2:
我在DW MX的代码是:

mysql_select_db($database_personal1, $personal1);
$query_sql = $query_sql = "SELECT * FROM address where".$zd."like'%".$key."%'";
$sql = mysql_query($query_sql, $personal1) or die(mysql_error());
……//后面的全是关于怎么设置页面显示的 就此省略。

运行后只有这样的一行字:You have an error in your SQL syntax near ''%%'' at line 1
请问这是什么意思 这么在我自己做的上就会有错误了呢?一样的百分号啊!
我把代码该成这样以后
$query_sql = "SELECT * FROM address where".$zd."'".$key."'";
关键字是查的到了但不是我要的关键字 是号码的关键字了
就是说 输入比如5什么的 就可以找到一大堆号码
但输入人名就不行 找不到字……

请高手给个解答!谢谢!
相关文件:点这儿打开



gqlau

职务:普通成员
等级:1
金币:1.0
发贴:185
#22003/2/3 9:46:09
like的作用是使用通配符测试字符串样式匹配,%可用来匹配任何字符



helmet

职务:版主
等级:4
金币:10.0
发贴:1559
#32003/2/13 11:19:57
like 和 "%"是SQL的模式匹配,建议看mysql参考。
www.9headbird.com/book/manual/mysql/cn/manual_Tutorial.html#Retrieving_data

“8.4.4.7 模式匹配”小节



无敌网络ANTer

职务:普通成员
等级:2
金币:1.0
发贴:187
#42003/2/13 19:02:34
斑竹先生,能再提供一些好网站东东吗?


骄傲的骑士\曾起何时\已挂靴于驰骋的沙场\空留绝尘而去的笑声
Antknight