Advertisement
Guest User

Untitled

a guest
Sep 10th, 2016
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.81 KB | None | 0 0
  1. <?php
  2. /*************************
  3. // GENERATED NESTED LIST
  4. // created by : Cahya DSN
  5. // created date : 2012-09-14
  6. // updated date : 2013-04-04
  7. **************************
  8. USE `test`;
  9.  
  10. DROP TABLE IF EXISTS `project`;
  11. CREATE TABLE IF NOT EXISTS `project` (
  12. `id_task` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT 'primary key untuk table project',
  13. `id_parenttask` int(11) unsigned NOT NULL DEFAULT 0,
  14. `task_name` varchar(30) NOT NULL COMMENT 'nama task',
  15. `task_desc` text COMMENT 'deskripsi task',
  16. `status` tinyint(4) unsigned NOT NULL DEFAULT 0,
  17. PRIMARY KEY(`id_task`)
  18. ) ENGINE=MyISAM COMMENT='tabel untuk menyimpan data project';
  19.  
  20. INSERT INTO `project`(`id_task`,`id_parenttask`,`task_name`,`task_desc`,`status`) VALUES
  21. (NULL,0,'Kategori 1','',0),
  22. (NULL,1,'Kategori 1.1','',0),
  23. (NULL,1,'Kategori 1.2','',0),
  24. (NULL,3,'Kategori 1.2.1','',0),
  25. (NULL,0,'Kategori 2','',0),
  26. (NULL,0,'Kategori 3','',0),
  27. (NULL,6,'Kategori 3.1','',0),
  28. (NULL,6,'Kategori 3.2','',0),
  29. (NULL,3,'Kategori 1.2.2','',0),
  30. (NULL,6,'Kategori 3.3','',0);
  31. */
  32. function GenerateDataArray($arr, $parent = 0)
  33. {
  34. $pages = Array();
  35. foreach($arr as $page)
  36. {
  37. if($page['id_parenttask'] == $parent)
  38. {
  39. $page['sub'] = isset($page['sub']) ? $page['sub'] : GenerateDataArray($arr, $page['id_task']);
  40. $pages[] = $page;
  41. }
  42. }
  43. return $pages;
  44. }
  45.  
  46. // loop the multidimensional array recursively to generate the HTML
  47. function GenerateDataHTML($nav)
  48. {
  49. $html = '';
  50. foreach($nav as $page)
  51. {
  52. $html .= "<ul>\n<li>\n";
  53. $html .= '<a href="' . $page['id_task'] . '">' . $page['task_name'] . '</a>';
  54. $html .= GenerateDataHTML($page['sub']);
  55. $html .= "</li>\n</ul>\n";
  56. }
  57. return $html;
  58. }
  59. //database configuration
  60. $dbhost='localhost';
  61. $dbuser='root';
  62. $dbpass='';
  63. $dbname='test';
  64. //database connection
  65. $db=new mysqli($dbhost,$dbuser,$dbpass,$dbname);
  66. //query to get project datas from database
  67. $sql="SELECT * FROM project";
  68. $data=array();
  69. $result=$db->query($sql);
  70. while($records=$result->fetch_assoc()){
  71. $data[]=$records;
  72. }
  73. $result->close();
  74. $db->close();
  75. /* DUMMY DATA FOR TEST
  76. //======================
  77. $data=array(
  78. array('id_task'=>1,'task_name'=>'Kategori 1','id_parenttask'=>0),
  79. array('id_task'=>2,'task_name'=>'Kategori 1.1','id_parenttask'=>1),
  80. array('id_task'=>3,'task_name'=>'Kategori 1.2','id_parenttask'=>1),
  81. array('id_task'=>4,'task_name'=>'Kategori 1.2.1','id_parenttask'=>3),
  82. array('id_task'=>5,'task_name'=>'Kategori 2','id_parenttask'=>0),
  83. array('id_task'=>6,'task_name'=>'Kategori 3','id_parenttask'=>0),
  84. array('id_task'=>7,'task_name'=>'Kategori 3.1','id_parenttask'=>6),
  85. array('id_task'=>8,'task_name'=>'Kategori 3.2','id_parenttask'=>6)
  86. );
  87. */
  88.  
  89. $dataarray = GenerateDataArray($data);
  90. echo GenerateDataHTML($dataarray);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement