解决方案 »
- 关于php程序实现文件下载并记录下载次数的问题!!急急急··
- 在地址栏输入http://localhost却跳到百度搜索,用127.0.0.1能访问?
- 用GD库ImageTTFText生成图片,什么中文字体是单一颜色
- 为啥get能传post就不能传了?
- 增加了填QQ,提交数据不存储,请问怎么回事
- 用PHP程序访问一个网页的几个问题。
- 请问php代码中何时该用双引号,何时不该用
- [PHP]php5.1.0b3运行php时只能有一个<? ?>
- 老问题了:PHP4 的session配置问题,搜了好多老帖,试了很多方法还是解决不了!救急啊!100分求解决方法
- PHP有没有类试ASP的CODEPAGE啊?
- StarUML 如何增加PHP代码插件?
- 求一段正则
{
$result = mysql_query("Select * FROM category Where parentid = {$parentid}");
while($row = mysql_fetch_array($result))
{
echo str_repeat(" ", 2 * $level) . $row['catname'].'<br />';
tree($row['catid'], ++ $level);
}
}
if(($parentid + 0) < 1) $parentid = 0;
tree($parentid);
1级需要: 1条sql
2级需要: 1 + 10条sql
3级需要: 1 + 10 + 100条sql
4级需要: 1 + 10 + 100 + 1000条sql
$result = mysql_query("Select * FROM category Where parentid = {$parentid}");
改为
$result = mysql_query("Select 需要的字段 FROM category Where parentid = {$parentid}");
while($row = mysql_fetch_array($result)) 改为while($row = mysql_fetch_array_assoc($result))
function retrieval($pids) {
$result = mysql_query("Select * FROM category Where parentid in (" . implode(",", $pids) . ")");
$result = array_merge(retrieval(这里传入检索出的本级的类别id数组));
}
这个递归, 用4个sql就可以完成4级的查询...当然, 这种方式也有自己的缺点, 比如随着级别的深入, 发送的sql语句就变大了..所以, 要根据你自己的数据特点来做才好...你现在的目的就是要把数据库中的这些树状数据取出来, 展现成一个树..
但是, 把这些数据取出来, 并不一定要一条一条的去发那么多的sql, 可以简化取数据的方式, 因为发送很多条sql执行毕竟是比较慢的....
所以, 把数据三下五除二整出来...
到了内存里面, 那就随你怎么折腾了..
{
$result = mysql_query("Select * FROM category Where parentid = {$parentid}");
while($row = mysql_fetch_array($result))
{
echo str_repeat(" ", 2 * $level) . $row['catname'].'<br />';
tree($row['catid'], ++ $level);
}
}
if(($parentid + 0) < 1) $parentid = 0;
tree($parentid);这个代码不行吗?
那改成 试试吧
另外,尽量自己多考虑考虑问题的解决方法,其实,很多人不愿意直接给你答案,是为了不让你成为没有思想,只会摘抄的无用之人能到社区中来无偿回答问题,帮助别人的人,都不是什么坏人,楼主还是本着一颗宽容的心去多思考思考问题吧心能静下来是关键。
数据多,引入ajax tree,每点一个节点,只load对应的子节点。