PHP生成表格
<?php
/* DROP TABLE IF EXISTS `art`; CREATE TABLE `art` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`pid` int(11) NOT NULL DEFAULT '0',
`cate` char(10) NOT NULL,
`path` char(10) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1; LOCK TABLES `art` WRITE; INSERT INTO `art` (`id`, `pid`, `cate`, `path`)
VALUES
(1,0,'a1','4'),
(2,1,'b1','2'),
(3,1,'b2','2'),
(4,3,'c3',''),
(5,3,'c2',''),
(6,2,'c1',''),
(7,2,'c4',''),
(8,0,'A2','5'),
(9,8,'A2-B1','3'),
(10,9,'A2-B1-C1',''),
(11,9,'A2-B1-C2',''),
(13,9,'A2-B1-C3',''),
(14,8,'A2-B2','1'),
(15,14,'A2-B2-C1',''),
(16,8,'A2-B3','1'),
(17,16,'A2-B3-C1',''),
(18,0,'A3','1'),
(19,18,'A3-B1','1'),
(20,19,'A3-B1-C1',''); UNLOCK TABLES; */
header('Content-type:text/html;charset=utf-8');
$connect = mysqli_connect('localhost', 'root', 'newpass', 'security');
$connect->query('set names utf8'); $query = $connect->prepare('select * from art'); $query->execute();
$query->bind_result($id, $pid, $cate, $path); $arr = [];
while ($query->fetch()) {
// printf("%s %s\n", $id, $text);
// echo "id: {$id} - text: {$text} <br />";
// echo "id: {$id} - text: " . _escape_string($text) . " <br /> \n";
// echo "id: {$id} - text: " . $cate . " <br /> \n";
$arr[] = [
'id' => $id,
'pid' => $pid,
'cate' => $cate,
'path' => $path // 每一个大分类中考核总数
];
} function tree($pid = 0, $arr) {
$tree = '';
foreach($arr as $cate) {
if ($pid == $cate['pid']) {
$cate['son'] = tree($cate['id'], $arr);
$tree[] = $cate;
}
} return $tree;
} $data = tree(0, $arr); echo "<table border='1'>\n"; foreach($data as $row) {
//var_dump($row);continue;
// 一级分类、二级分类第一行以及三级分类第一行
echo "<tr>\n";
echo "<td rowspan='{$row['path']}'>{$row['cate']}</td>\n";
echo "<td rowspan='{$row['path']}'>10</td>\n";
echo "<td rowspan='{$row['path']}'>编辑 删除 增加</td>\n";
echo "<td rowspan='{$row['son'][0]['path']}'>{$row['son'][0]['cate']}</td>\n";
echo "<td rowspan='{$row['son'][0]['path']}'>mf</td>\n";
echo "<td rowspan='{$row['son'][0]['path']}'>编辑 删除 增加</td>\n";
echo "<td >{$row['son'][0]['son'][0]['cate']}</td>\n";
echo "<td >sf</td>\n";
echo "<td >编辑 删除 增加</td>\n";
echo "</tr>\n"; // 补全二级分类第一行的所有下级分类
for($i = 1; $i <= count($row['son'][0]['son']) - 1; $i++) {
echo "<tr>\n";
echo "<td >{$row['son'][0]['son'][$i]['cate']}</td>\n";
echo "<td >sf</td>\n";
echo "<td >编辑 删除 增加2</td>\n";
echo "</tr>\n";
} // 补全二级分类
// for($j = 1; $j <= count($row['son']) - 1; $j++) {
for($j = 1; $j < count($row['son']); $j++) {
echo "<tr>\n";
echo "<td rowspan='{$row['son'][$j]['path']}'>{$row['son'][$j]['cate']}</td>\n";
echo "<td rowspan='{$row['son'][$j]['path']}'>mf</td>\n";
echo "<td rowspan='{$row['son'][$j]['path']}'>编辑 删除 增加3</td>\n";
echo "<td >{$row['son'][$j]['son'][0]['cate']}</td>\n";
echo "<td >sf</td>\n";
echo "<td >编辑 删除 增加</td>\n";
echo "</tr>\n";
} // 二级分类的下级行
for($k = 1; $k < count($row['son']); $k++) {
for( $l = 1; $l < count($row['son'][$k]['son']); $l++) {
echo "<tr>\n";
echo "<td >{$row['son'][$k]['son'][$l]['cate']}</td>\n";
echo "<td >sf</td>\n";
echo "<td >编辑 删除 增加2</td>\n";
echo "</tr>\n";
}
}
} echo "</table>\n";
PHP生成表格的更多相关文章
- java 如何在pdf中生成表格
1.目标 在pdf中生成一个可变表头的表格,并向其中填充数据.通过泛型动态的生成表头,通过反射动态获取实体类(我这里是User)的get方法动态获得数据,从而达到动态生成表格. 每天生成一个文件夹存储 ...
- js动态生成表格
动态生成表格 *创建一个页面:两个输入框和一个按钮 *代码和步骤 /* 1.得到输入的行 ...
- Android 自动生成表格
Layout.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:a ...
- JavaScript案例七:简单生成表格
JavaScript简单生成表格,巩固基础知识点... <!DOCTYPE html> <html> <head> <title>JavaScript简 ...
- 【转】ASP.NET中服务器控件Table动态生成表格及其属性介绍
下文所有内容转自开源中国:http://www.oschina.net/question/565065_86453#tags_nav ================================= ...
- (转载)PHP 动态生成表格
(转载)http://hi.baidu.com/shawns/item/c7d51f351c6a0482b711dba6 提要:PHP能够高效地生成HTML代码,其中,动态生成表格是实际应用中经常碰到 ...
- Ext Designer生成表格
1.生成表格代码 Ext.MyPanel=Ext.extend(Ext.Panel ,{ xtype:"panel", title:"我的面板", width: ...
- Js--动态生成表格
<div> <h1>动态生成表格</h1> <div id="table1"> 行 ...
- JS动态生成表格后 合并单元格
JS动态生成表格后 合并单元格 最近做项目碰到表格中的单元格合并的问题,需求是这样的,首先发ajax请求 请求回来后的数据 动态生成表格数据,但是生成后如果编号或者(根据其他的内容)有相同时,要合并单 ...
- VC编程操作word2010生成表格
作者:朱金灿 来源:http://blog.csdn.net/clever101 一. 右键单击工程节点,然后选择添加类,如下图: 二. 添加TypeLib中的MFC类,如下图: 三. 选 ...
随机推荐
- Understanding Spring Web Application Architecture: The Classic Way--转载
原文地址:http://www.petrikainulainen.net/software-development/design/understanding-spring-web-applicatio ...
- YAR 并行RPC框架研究
前几天,部门召开了PHP技术峰会 学习会议,大家分别对这次会议的PPT 做了简单的介绍, 其中提到了 鸟哥[惠新辰]的一篇PPT<微博LAMP 演变>,如果谁有需要可以去谷歌搜,或者去 h ...
- 防火墙导致FTP传输文件为0
在使用 ftpClient 传输文件到FTPserver时,在别的机器上可以正常使用,但是到自己的机器有就始终是0文件,发现是Mcafee 防火墙导致的,只要让防火墙放行即可. Mcafee防火墙的放 ...
- [PHP] Eclipse开发PHP环境配置
首先准备好软件: 1. Apache,到这里找个最新版本 2. PHP,到这里下载 3. Eclipse IDE for Java EE Developers,到这里下载 4. DLTK Core F ...
- iOS之Storyboard References
如果你曾经使用 interface builder 创建过一个复杂.界面非常多的应用,你就会明白最后那些Storyboards 文件变的有多大.他会迅速变的无法管理,阻碍你的进度.自从引入 Story ...
- poj 3648 2-SAT问题
思路:将每对夫妻看成是对立状态,每个不正常关系都是一个矛盾,按2-SAT的方式建边.最后建一条新娘到新郎的边.具体看注释 #include<iostream> #include<cs ...
- CF 13E. Holes 分块数组
题目:点这 跟这题BZOJ 2002: [Hnoi2010]Bounce 弹飞绵羊 一模一样 分析: 分块数组入门题. 具体的可以学习这篇博文以及做国家集训队2008 - 苏煜<对块状链表的一 ...
- 把数据库中的字符串格式转为long类型
背景: 在做接口时,需要把数据库中所有ID取出来,用jmter做一些数据关联,问题来了,数据库中的ID转换出来为字符型,而接口是需要使用LONG型,所以在导出来后,数据一直报类型不为long,那如何把 ...
- Jquery Easyui验证扩展,Easyui验证,Easyui校验,js正则表达式
Jquery Easyui验证扩展,Easyui验证,Easyui校验,js正则表达式 >>>>>>>>>>>>>> ...
- 写代码的心得,怎么减少编程中的 bug?
遭遇 bug 的时候,理性的程序员会说:这个 bug 能复现吗? 自负型:这不可能,在我这是好好的. 经验型:不应该,以前怎么没问题? 幻想型:可能是数据有问题. 无辜型:我好几个星期都没碰这块代码了 ...