我的代码是这样的:
include('function.php');//这个文件是封装了一个MYSQL的类,把一些常用的方法封装进去了
$db=new mysql('localhost','root','123456','blog',"GBK");
$db->connect();
// $sql="select * from `article` where contents like '%电脑%'";
// $query=mysql_query($sql);
// echo $query."<br>";
// $rows=mysql_fetch_array($query);
// print_r($rows);
// echo $rows[contents]."<br>";
//上面写的SQL语句,执行语句这样查询是正确的。当检索的时候是可以检索到的
if($k=isset($_GET['key'])){
$sql="select * from `article` where contents like '%$k%'";
$query= $db->query($sql);
//echo $query;
$r= $db->fetch_array($query);
//print_r($r);
while($r){
echo $r[contents]."<br>";
}
}
//从if 这一判断就不正确了,什么都检索不出来 功能基本上没实现,这是怎么回事呢?求救。
?>
<form action="" method="GET">
关键字:
<input type="text" name="key" />
<input type="button" name="sub" value="检索"/>
</form>
PHP站内搜索 关键字 为什么实现不了?请高人指点 。
答案:4 悬赏:50 手机版
解决时间 2021-02-14 02:19
- 提问者网友:爱唱彩虹
- 2021-02-13 06:27
最佳答案
- 五星知识达人网友:末日狂欢
- 2021-02-13 07:49
试试把
if($k=isset($_GET['key'])){
改成
if(isset($_GET['key'])){
$k=$_GET['key'];
$sql="select * from `article` where contents like '%$k%'";
...
}
bool isset ( mixed $var [, mixed $... ] )
isset 返回的是逻辑型,所以$k 得到的就只有 .T. or .F.
if($k=isset($_GET['key'])){
改成
if(isset($_GET['key'])){
$k=$_GET['key'];
$sql="select * from `article` where contents like '%$k%'";
...
}
bool isset ( mixed $var [, mixed $... ] )
isset 返回的是逻辑型,所以$k 得到的就只有 .T. or .F.
全部回答
- 1楼网友:未来江山和你
- 2021-02-13 10:12
首先,你在这个if里打印一段字符串出来,看看进这个if判断没有,如果依然不行,那就改一下即可。
//if($k=isset($_GET['key'])){
//你要的不就是要判断参数不能为空吗,改为!empty即可。
if(!empty($_GET['key'])){ //这样就可以了
$sql="select * from `article` where contents like '%$k%'";
$query= $db->query($sql);
//echo $query;
$r= $db->fetch_array($query);
//print_r($r);
while($r){
echo $r[contents]."<br>";
}
}
- 2楼网友:七十二街
- 2021-02-13 09:42
//从if 这一判断就不正确了,什么都检索不出来 功能基本上没实现,这是怎么回事呢?求救。
就是if判断错了呗
if($k = isset($_GET['key']))
现在$k不是true就是false,你当然查不出东西咯。正确为
if (isset($_GET['key'])) {
$k = trim($_GET['key']);
if (empty($k)) {
//查询条件是空哦,你不处理一下吗?
}
}
然后你可能还要对$k做个处理,防止sql注入攻击。
- 3楼网友:我住北渡口
- 2021-02-13 08:20
//从if 这一判断就不正确了,什么都检索不出来 功能基本上没实现,这是怎么回事呢?求救。
就是if判断错了呗
if($k = isset($_GET['key']))
现在$k不是true就是false,你当然查不出东西咯
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯