就是比较常见的那种,同时查询两三个关键词,以空格分隔。然后进行查询。不需要太复杂,能简单的实现就行。怎么做啊?我想的是explode分隔出来出来?然后呢?
解决方案 »
- 求 抽奖算法
- 问一个加密的问题。
- MYSQL-font如何连接远程服务器
- FCK在线编辑器不能在Linux下显示
- 访问phpMyAdmin/index.php时报错:The specified CGI application misbehaved by not returning a complete set of HTTP headers
- 请教,如何取得服务器上文件的大小?
- WIN2K+PHP+IIS+ORACLE PHP连接数据库报错是什么原因
- 一个打击了我学习php热情的问题:怎么样配置才能运行php程序啊???
- 在PHP中有没有办法对EXCEL的数据进行读写?
- 怎么获取二维数组里的值?
- PHP二维数组分页问题
- 菜鸟问题,PHP简单函数问题
索德斯涅這麼多個like 想讓mysql 癱瘓...哈哈,關鍵是你的數據庫到底是怎麼設計的。然後怎麼個同時查詢三個關鍵詞法?
3個表?還是一個表?三個字段還是一個字段,你都沒說清楚。
$key=$_GET['keywords'];
$arr=(explode(" ",$key));
foreach ($arr as $value)
{
$db->Query("prs","SELECT * FROM news WHERE `TITLE` LIKE '%$value%'");
while($prt=$db->GetArray("prs"))
{
$search[] = $prt;
}
$qf->assign("search",$search);
}
然后会搜索出关键词一和关键词二的select的信息。可能某条信息既包括了“关键词一”又包括了“关键词二”,那么这个信息就会被输出两次。一次是被“关键词一”检索出来的,另一次是被“关键词二”检索出来的、怎么避免这个状况啊?
$arr=preg_split("#\s+#",$key);$like = implode("%' OR `TITLE` LIKE '%",$arr);$db->Query("prs","SELECT * FROM news WHERE `TITLE` LIKE '%$value%'");
while($prt=$db->GetArray("prs"))
{
$search[] = $prt;
}
$qf->assign("search",$search);