无限分类数据库表CREATE TABLE IF NOT EXISTS `royal_ask_group` (
`gid` int(11) NOT NULL auto_increment,
`parent` int(11) NOT NULL default '0',
`topid` int(11) NOT NULL default '0',
`group_key` varchar(255) NOT NULL,
`group_title` varchar(64) NOT NULL,
`ordered` int(5) NOT NULL default '0',
`children` varchar(255) default NULL,
`flag` set('h','c','b','t') default NULL,
`content` text NOT NULL,
`image` varchar(255) default NULL,
PRIMARY KEY (`gid`),
KEY `parent` (`parent`),
KEY `topid` (`topid`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;没父id的parent=0;有父id的数组 $sql_data_array = array(
'parent' => (int)$_POST['parent'],
'topid' => (int)$_POST['topid'],
'group_key'=> ($_POST['group_key']),
'group_title'=> ($_POST['group_title']),
'flag'=> (isset($_POST['flags']) join(',',$_POST['flags']) : ''),
'content'=> ($_POST['content']),
'ordered' => (int)$_POST['ordered']);
双重循环来实现,结构如下:
$sql1='select pro_nclassid,pro_nclassname,count() from pro_nclass,news where pro_nclassid=newscid group by 1,2 order by 1';
//上面的语句对news表中的新闻按照类别进行统计,并获取类别名称
$res1=mysql_query($sql1);
while(list($cid,$cname,$ncnt)=mysql_fetch_row($res1)){
echo "$cid $cname $ncnt<br>";//显示本类新闻的名称和数量
$sql2="select from news where cid=$cid order by id desc limit 10";
$res2=mysql_query($sql2);
while($row=mysql_fetch_array($res2)){显示一个新闻的语句}
mysql_free_result($res2);
}
mysql_free_result($res1);
以上代码是基本的架构,你写的时候一定要加上错误检测。
每个节点都要记录子节点的数量c。每新增一个节点都要对各父和祖节点的子节点计数加1。这样根节点会有总数的记录。
这样递归遍历时也可以根据子节点数量c的来确定读取的数量限制。比如 读取条数计数<10 就继续递归
在每个节点的表上 增加子节点的id集或计数,增加根节点到父节点路径,会方便这些 *** 作。
以上就是关于php无限分类怎么弄全部的内容,包括:php无限分类怎么弄、PHP分类显示输出、PHP递归无限分类的 如何统计总条数 以及对显示的结果进行分页比如设置为每页显示10个 。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)