+ -
当前位置:首页 → 问答吧 → 菜鸟求助:php模糊查询出问题了,

菜鸟求助:php模糊查询出问题了,

时间:2011-12-14

来源:互联网


$k=$_POST['keyword'];
//if($k<1){echo "请输入关键词!";}
echo $k;

$query = "SELECT * FROM news where title like '%".$k."%' order by newstime desc LIMIT 0,20"; 

//$query = "SELECT * FROM news where title like '%房源%' order by newstime desc LIMIT 0,20";

这个查询语句错在哪里?表单字段能获取,字段写死也可以查询出结果,郁闷了。。

作者: nlxd123   发布时间: 2011-12-14

你打印出来看看

作者: xuzuning   发布时间: 2011-12-14

你要求的查询值是什么?期待什么输出结果?

哪种查询值出现了你不希望的结果?

作者: CunningBoy   发布时间: 2011-12-14

估计又是编码...

作者: PhpNewnew   发布时间: 2011-12-14

$query = "SELECT * FROM news where title like '%房源%' order by newstime desc LIMIT 0,20";

如果写死的话就能查出带房源的标题等等表的信息。

不写死的话什么也查不出来。。

作者: nlxd123   发布时间: 2011-12-14

$k= trim($k);
别的地真没看出问题

作者: yetaodiao   发布时间: 2011-12-14

$k=$_POST['keyword'];
//if($k<1){echo "请输入关键词!";}
echo $k;

$query = "SELECT * FROM news where title like '%".$k."%' order by newstime desc LIMIT 0,20"; 

echo $query;

贴结果。

作者: ci1699   发布时间: 2011-12-14

是编码问题、、 英文可以的。
$query = "SELECT * FROM news where title like '%房源%' order by newstime desc LIMIT 0,20";
为什么直接执行可以出结果,,获取的就不行呢

作者: nlxd123   发布时间: 2011-12-14

echo $query 结果

SELECT * FROM news where title like '%什么%' order by newstime desc LIMIT 0,20 

查询英文也问题的。。

作者: nlxd123   发布时间: 2011-12-14

数据库编码和文件编码都设置为UTF-8,否则中文值有可能在数据库不能被正确显示。

作者: CunningBoy   发布时间: 2011-12-14

同意3楼,语法没什么问题,我怎么又少了个小裤衩

作者: chchmlml   发布时间: 2011-12-14

这样写sql很容易被注入。

作者: afeiqiang   发布时间: 2011-12-14