Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用子数组mysql进行查询_Php_Mysql_Sql_Subquery_Hierarchical Data - Fatal编程技术网

Php 使用子数组mysql进行查询

Php 使用子数组mysql进行查询,php,mysql,sql,subquery,hierarchical-data,Php,Mysql,Sql,Subquery,Hierarchical Data,所以我创建了这个cms 它使用主页和子页(无限级) 通常我会(记住,这是一个例子): 添加了表格的结构这正是我不想做的事情。。。我想要一个查询,而不是由for/foreachHum完成。很抱歉,我的代码中只有一个查询。我想要一个已经处理了所有foreach内容的查询。我不想手动添加子页面。 function getPages($parent_id = 0) { $data = mysql("select * from pages WHERE parent_id=$parent_id")

所以我创建了这个cms

它使用主页和子页(无限级)

通常我会(记住,这是一个例子):



添加了表格的结构这正是我不想做的事情。。。我想要一个查询,而不是由for/foreachHum完成。很抱歉,我的代码中只有一个查询。我想要一个已经处理了所有foreach内容的查询。我不想手动添加子页面。
function getPages($parent_id = 0)
{
    $data = mysql("select * from pages WHERE parent_id=$parent_id");
    if($data)
    {
        for($i=0; $i < count($data); $i++)
        {
            $data[$i]['subpages'] = getPages($data[$i]['id'];
        }
    }

    return $data;
}
`id` int(11) NOT NULL,
`parent_id` int(11) NOT NULL,
`language_id` int(11) NOT NULL,
`location_id` int(11) NOT NULL,
`order` int(11) NOT NULL,
`active` tinyint(1) NOT NULL,
`follow` tinyint(1) NOT NULL,
`title` varchar(255) NOT NULL,
`sub_title` varchar(255) NOT NULL,
`page_title` varchar(255) NOT NULL,
`url` varchar(255) NOT NULL,
`content` text NOT NULL,
`seo_tags` varchar(255) NOT NULL,
<?
  // Filling $data for the example. You can replace following lines by 
  // $data = mysql("select * from pages");

  $data = array(
            array("id" => 1, "name" => "a", "parent_id" => 0 ),
            array("id" => 2, "name" => "b", "parent_id" => 1 ),
            array("id" => 3, "name" => "c", "parent_id" => 2 ),
            array("id" => 4, "name" => "d1", "parent_id" => 3 ),
            array("id" => 5, "name" => "d2", "parent_id" => 3 )
          );

  function getPages($parent_id = 0)
  {
      global $data;
      $result = array();
      $resultSize = 0;
      if($data)
      {
          $countData = count($data);
          for($i=0; $i < $countData; $i++)
          {
              if ($data[$i]["parent_id"] == $parent_id) {
                $result[$resultSize] = $data[$i];
                $subpage = getPages($data[$i]["id"]);
                if (!empty($subpage)) {
                  $result[$resultSize]["subpages"] = $subpage;
                }
                $resultSize++;
              }
          }
      }

      return $result;
  }

  print_r(getPages(0));

?>