PHP生成表格
2015-11-04 15:46
176 查看
<?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的报错级别并返回当前级别error_reporting()
- php利用header导出.doc或者.xls文件
- SUBLIME TEXT [DECODE ERROR - OUTPUT NOT UTF-8] 解决方案
- 非常全面的php日期时间运算汇总
- php开发工具zendstudio13破解补丁
- php多进程编程相关资料(以备参考)
- php对文件夹进行相关操作(遍历、计算大小)
- PHP高性能研究之APC&&zend导致502问题排查
- php三元运算符 ? :
- PHP使用eval()函数的注意事项
- php debug_backtrace()
- PHP Pdo MySQL Server has gone away
- 转载php在IIS中运行
- [THINKPHP] 模板可用三元操作符
- PHP:错误 Deprecated: Function split() is deprecated in ... 解决办法
- Ubuntu 12.04 配置MTP连接手机
- PHP模拟发送POST请求之五curl基本使用和多线程优化
- Laravel菜鸟上路 - 踩坑 - 菜鸟问题1 - 配置文件.env 并非实时生效
- ThinkPHP3.2.3中Controller的继承
- php通过socket和c通讯