刚学不久,可不可以帮我看一下这段代码。谢谢!

dehong 2008-04-02 05:09:59
if ($_REQUEST['keyword'])
{
$keywords = split(' ', $_REQUEST['keyword']); //*****
$num_keywords = count($keywords); //***
for ($i=0; $i<$num_keywords; $i++)
{
if ($i)
{
$keywords_string .= "or k.keyword = '".$keywords[$i]."' "; //***
}
else
{
$keywords_string .= "k.keyword = '".$keywords[$i]."' "; //**
}
}

$query = "select s.id,
s.headline,
10 * sum(k.weight) / $num_keywords as score
from stories s, keywords k
where s.id = k.story
and ($keywords_string)
and published is not null
group by s.id, s.headline
order by score desc, s.id desc"; //****


$result = $handle->query($query);
}
echo '<h2>Search results</h2>';
...全文
54 点赞 收藏 6
写回复
6 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
ten789 2008-04-03
$handle 应该是一个实例化的BD类 呵呵 包含和实例化这段代码里没有
回复
striker_un 2008-04-02


//发个有趣点的。
//当你程序做多了时,你发现查询,无非是些参数的组合。
$table = "***"; //表名
$itemString = "***"; //查询字符串
$cond = "***"; //查询条件的组合。
$ord = "***"; //排序条件
$limit = "limit **"; //一页多少个
$isPage = "true"; //是否分页

//小提示,我通常把多表查询做成视图来处理,一效率提高。二方便编程。

//然后用个公用函数进行处理一下.
$res = common::dbquery($table,$cond,$ord,itemString,$limit,$isPage);

//然后接下来就是将这个数据render 出来了。
//找个模版引擎来解决,例如smarty() 我个人不爱。再不用正则自己写一个。总之就是那些换成换去的东西。实在需要发我邮件striker.un@gmail.com 我发你一个。


//慢慢的写了几个这样的程序,你会发现这个程序是可以生成的。。。
//呵呵,这时你会写个程序,用来生成这样的程序。。。

//再慢慢的,你发现前台可以给一个默认的方案来实现。。。
//一步一步的,一个垃圾cms 从此旦生了。。。。。。。
//回头来看这个过程,又发现很有趣的事。 我们更需要的是轻量级的解决方案,找到自己所面对的问题解决上的思路,去进化。。在不断的重复中找到高效的解决方案。。。。

回复
剑心永远OK 2008-04-02
楼上正解。。
if ($i)
{
$keywords_string .= "or k.keyword = '".$keywords[$i]."' "; //***
}
else
{
$keywords_string .= "k.keyword = '".$keywords[$i]."' "; //**
}

SQL拼接。。
回复
Aylazhang 2008-04-02
这没有函数啊。
这段代码的大概意思就是:
把用户get或者post来的查询关键字以空格进行分割。然后对分割结果在stories和keywords表里查找。输出查找结果。
回复
dehong 2008-04-02
帮我解释一下这个函数,$handle 是链接数据库的变量。
回复
Aylazhang 2008-04-02
$handle 是什么东西? 出现的是什么问题?
回复
相关推荐
发帖
基础编程
创建于2007-09-28

2.1w+

社区成员

从PHP安装配置,PHP入门,PHP基础到PHP应用
申请成为版主
帖子事件
创建了帖子
2008-04-02 05:09
社区公告
暂无公告