Php 使用子数组mysql进行查询
所以我创建了这个cms 它使用主页和子页(无限级) 通常我会(记住,这是一个例子):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")
添加了表格的结构这正是我不想做的事情。。。我想要一个查询,而不是由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));
?>