永发信息网

PHP站内搜索 关键字 为什么实现不了?请高人指点 。

答案:4  悬赏:50  手机版
解决时间 2021-02-14 02:19
  • 提问者网友:爱唱彩虹
  • 2021-02-13 06:27
我的代码是这样的:
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>
最佳答案
  • 五星知识达人网友:末日狂欢
  • 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.
全部回答
  • 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,你当然查不出东西咯
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯