PHP-下拉列表不显示mysql中的所有项

PHP-下拉列表不显示mysql中的所有项,php,html,mysql,Php,Html,Mysql,我试图制作一个下拉菜单,并列出多个项目以及 例如: 这是我的数据库: 如果您在该图像中看到,您只能看到其中一行有一个父行如果我希望多行有一个“Far-Away123”的父行,则只显示其中一个项目 <?php function build_dropdown ($parent, $pages){ $items = ""; foreach($pages as $page){ // $items = ""; if($page['parent'] == $parent

我试图制作一个下拉菜单,并列出多个项目以及

例如: 这是我的数据库:

如果您在该图像中看到,您只能看到其中一行有一个父行如果我希望多行有一个“Far-Away123”的父行,则只显示其中一个项目

<?php

  function build_dropdown ($parent, $pages){
  $items = "";
    foreach($pages as $page){
    // $items = "";
  if($page['parent'] == $parent){
    $items = $page;
  } // END if
    } // END foreach

    if(is_array($items)){ // If a sub 
      echo '<ul id="sub_menu" class="sub_navagation'. $items['id'] .'">';
        echo '<li>'.$items['page_name'].'</li>';
      echo '</ul>'; 
    } // END if 
  }// End Function

  $sql = "SELECT * FROM pages ORDER by item_order";
  $result = mysqli_query($db, $sql);
  confirm_query($result);

  while ($row = mysqli_fetch_assoc($result)) {
    $pages[] = $row; // Add each row to $pages array to use later
  }


  foreach($pages as $key => $page){

    if($page['parent'] == 'none'){ ?>

      <li id = "<?php echo $page['id']; ?>">
        <a href="page.php?id=<?php echo $page['id']; ?>" title="<?php echo     $page['page_title']; ?>">
          <?php echo $page['page_name']; ?>
        </a>
        <?php  ?>


<?php 
    } // END if
    build_dropdown($page['page_name'], $pages); // If there are child items     then build them out
echo "</li> ";
  } // END foreach
?>


因为你只加了一个

您有一个foreach搜索所有页面中的子项,并且只为后者记住其中一个
if(is_array())

function build_下拉菜单($parent,$pages)
{
//项是一个数组
$items=array();
foreach($页为$页){
如果($page['parent']==$parent){
//将元素添加到数组中
$items[]=$page;
}//如果结束,则结束
}//结束foreach
若有($项){
echo'
    ; foreach($items作为$item){ 回显“
  • ”.$item['page_name']; 构建下拉菜单($item['page\u name',$pages); 回音“
  • ”; }//结束foreach 回声“
”; }//如果结束,则结束 }//端函数

顺便说一下,最好从函数开始,给出
build\u下拉列表($parent='none',$pages)
,因为您只添加了一个

您有一个foreach搜索所有页面中的子项,并且只为后者记住其中一个
if(is_array())

function build_下拉菜单($parent,$pages)
{
//项是一个数组
$items=array();
foreach($页为$页){
如果($page['parent']==$parent){
//将元素添加到数组中
$items[]=$page;
}//如果结束,则结束
}//结束foreach
若有($项){
echo'
    ; foreach($items作为$item){ 回显“
  • ”.$item['page_name']; 构建下拉菜单($item['page\u name',$pages); 回音“
  • ”; }//结束foreach 回声“
”; }//如果结束,则结束 }//端函数

顺便说一句,最好从函数开始,给出
build\u下拉列表($parent='none',$pages)

在buildDropdown()函数中尝试一下

$items = array();

foreach($pages as $page)
{
    if($page['parent'] == $parent)
    {
        $items[] = $page;
    }
}

if (count($items) > 0)
{
    echo '<ul id="sub_menu_'.$parent.'" class="sub_navagation">';
    foreach($items as $item)
    {
        echo '<li>'.$item['page_name'].'</li>';
    }
    echo '</ul>';
}
$items=array();
foreach($页为$页)
{
如果($page['parent']==$parent)
{
$items[]=$page;
}
}
如果(计数($items)>0)
{
echo“
    ; foreach($items作为$item) { 回显“
  • ”.$item['page_name']。
  • ”; } 回声“
”; }
在buildDropdown()函数中尝试此操作

$items = array();

foreach($pages as $page)
{
    if($page['parent'] == $parent)
    {
        $items[] = $page;
    }
}

if (count($items) > 0)
{
    echo '<ul id="sub_menu_'.$parent.'" class="sub_navagation">';
    foreach($items as $item)
    {
        echo '<li>'.$item['page_name'].'</li>';
    }
    echo '</ul>';
}
$items=array();
foreach($页为$页)
{
如果($page['parent']==$parent)
{
$items[]=$page;
}
}
如果(计数($items)>0)
{
echo“
    ; foreach($items作为$item) { 回显“
  • ”.$item['page_name']。
  • ”; } 回声“
”; }
父列不应该包含页面ID而不是名称吗?您希望显示多个项目吗?其中只有一个有“Far Far Away123”的父项,所以如果你转到该页面,只有一个会出现…嘿,伙计,这将是一个好主意,但我已经编写了这样的代码,更改它需要很长时间是的,但我已尝试将其更改为两个,但仍然不起作用父列不包含页面ID,不是名称?要显示多个项目吗?其中只有一个有“Far Far Away123”的父项,所以如果你转到该页面,只有一个会出现…嘿,伙计,这将是一个好主意,但我已经编写了这样的代码,更改它需要很长时间是的,但我尝试过将其更改为两个,但仍然不起作用。你将在第13行收到E_通知:未定义的索引“id”(在这个列表中)和未定义的页面后面几行,谢谢,他不想让家长在那里的某个地方给我id吗?我看到你的帖子后,马上把我的答案送到市场上,我会给你投票。你会得到通知:未定义的索引“id”在第13行(在这个列表中)后面几行是未定义的页面名称谢谢,他不想让家长在那里的某个地方填写身份证吗?看到你的帖子后,我赶紧把我的答案送到市场上,我会投你的