Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/244.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生成纯css分层下拉菜单的子菜单_Php_Css_Mysqli - Fatal编程技术网

Php 无法使用mysql生成纯css分层下拉菜单的子菜单

Php 无法使用mysql生成纯css分层下拉菜单的子菜单,php,css,mysqli,Php,Css,Mysqli,我正在尝试创建一个下拉菜单,它可以与纯css一起工作。这在HTML中非常有效,没有任何问题,但是当我试图从SQL表中获取信息时,我似乎遇到了障碍。我会尽量简明扼要地解释这个问题 不带PHP/Mysqli的HTML <div id='menu'> <ul> <li><a href='#'><span>Home</span></a></li> <li cl a

我正在尝试创建一个下拉菜单,它可以与纯css一起工作。这在HTML中非常有效,没有任何问题,但是当我试图从SQL表中获取信息时,我似乎遇到了障碍。我会尽量简明扼要地解释这个问题

不带PHP/Mysqli的HTML

<div id='menu'>
    <ul>
        <li><a href='#'><span>Home</span></a></li>
        <li cl ass='active has-sub'>
            <a href='#'><span>Products</span></a>
            <ul>
                <li class='has-sub'>
                    <a href='#'><span>Product 1</span></a>
                    <ul>
                        <li><a href='#'><span>Sub Product</span></a></li>
                    </ul>
                </li>
            </ul>
        </li>
       <li><a href='#'><span>About</span></a></li>
       <li class='last'><a href='#'><span>Contact</span></a></li>
    </ul>
</div>

带有PHP/Mysqli的HTML

<div id="menu">
    <ul>
        <li class="current"><a href="index.php">Main</a></li>
        <li><a href="about.php">About Us</a></li>
        <li><a href="projects.php">Projects</a></li>
        <li class="has-sub"><a href="">Properties</a>
        <ul>
            <?php 
                require_once 'connect.php';
                $qry = db_select("select city as city,name from property a left join area b on a.area_id=b.id left join city c on b.city_id=c.id group by city");
                foreach ($qry as $row) {
                    echo "<li class='has-sub'><a href='#'><span>".$row['city']."</span></a></li>";
                }
                echo "<ul>";
                $qry = db_select("select city as city,name from property a left join area b on a.area_id=b.id left join city c on b.city_id=c.id ");
                foreach ($qry as $row) {
                    echo "<li><a href='#'><span>".$row['name']."</span></a></li>";
                }
            ?>
        </ul>
        <li><a href="contacts.html">Contacts</a></li>
    </ul>
    </div>
</div>

    • 有一些错误: -2对1 -项目属性没有 -

        现在让我谈谈你们菜单的结构,是这样的吗? Main 关于我们 项目 属性> 县>> 名字1 名称2 ...
        name i

        关于您实际想要的菜单结构有点不清楚,但可以肯定的是,您缺少了两个结束标记

        <li class="has-sub"><a href="">Properties</a>    
        <ul>
        <?php 
            require_once 'connect.php';
            $qry = db_select("select city as city,name from property a left join area b on a.area_id=b.id left join city c on b.city_id=c.id group by city");
            foreach ($qry as $row)
            {
                echo "<li class='has-sub'><a href='#'><span>".$row['city']."</span></a></li>";
            }
            echo "<ul>"; //this seems the issue, should be </ul></li>
        ?>
        

        • 试试这个,希望有帮助

          <ul>
          <?php 
                      require_once 'connect.php';
                      $qry = db_select("select city as city,name from property a left join area b on a.area_id=b.id left join city c on b.city_id=c.id group by city");
                      foreach ($qry as $row) : ?>
                          <li class='has-sub'><a href='#'><span><?php echo $row['city']; ?></span></a>
          
                         <ul>
                              <li><a href='#'><span><?php  echo $row['name']; ?></span></a></li>
                         </ul>
                      </li>
            <?php endforeach; ?>
            </ul>
          

          我不确定这样做是否正确,但我找到了一个答案,确保每组的第一条记录显示一个
            ,而不是其余的

            基本上,这是通过以下方法实现的

          • 变量为true
          • 如果变量为true,则“do something”变量为false
          • else“做点别的”
          • 我还增加了UL和Li课程,但这并不相关

            这是可行的,但我不确定这是否是最好的方法。我还没有尝试过其他方法,但我想知道这是否是一个好方法,因为它正在发挥作用

            <li class="has-sub"><a href=""><span>Properties</span></a>
             <?php 
                  $qry=db_select("select distinct city from city a join area b on a.id=b.city_id join property c on b.id=c.area_id");
            
            
                $first=true;
                               foreach ($qry as $row)
                {
            
                    $city=$row['city'];
                if ($first)
                {
                ?>
                <ul>
                    <li class='has-sub'><a href='#'><span><?php echo $row['city']; ?></span></a>
            
            
            
                    <?php
                    $first=false;
                    }else{
                    ?>
                        <li class='has-sub'><a href='#'><span><?php echo $row['city']; ?></span></a>
                <?php
                    }
                         $city=$row['city'];
            
            
                  $qry=db_select("select city,a.id as id,name from property a left join area b on a.area_id=b.id left join city c on b.city_id=c.id where city='$city' ");
                    $first=true;
            
            
                  foreach ($qry as $row)
                {
            
            
                if ($first)
                {
                ?>
                       <ul class="drop_ul"><li class="drop_col"><a href="showprop.php?id=<?php echo $row['id']; ?>"><span><?php echo $row['name']; ?></span></a></li>
                <?php 
                 $first=false;
                 }
                 else{
                        ?>
            
                        <li class="drop_col"><a href="showprop.php?id=<?php echo $row['id']; ?>"><span><?php echo $row['name']; ?></span></a></li>
                      <?php
                          }}?>
                </ul>
                </li>
                          <?php
                          }
                          ?>
            
                                </ul>
            

            • 属性菜单-城市(来自sql)子菜单-属性名称(来自sql)子菜单项请注意您的代码缩进,看到未结构化的代码非常容易混淆,而且很难首先理解问题。