使用sql和php的导航栏

使用sql和php的导航栏,php,sql,Php,Sql,hi有两个数据库表: 类别(包含类别名称) 子类(包含子类别) 我试着为每只猫展示子猫 i、 e: 第1类子类子类子类 子类第2类子类子类 猫子猫子猫 我正在使用这个查询,但它似乎不起作用。怎么办 $sql = mysql_query("SELECT category.dname AS dname, sub_cats.dname AS sdname FROM category LEFT JOIN sub_cats

hi有两个数据库表:

类别(包含类别名称) 子类(包含子类别)

我试着为每只猫展示子猫 i、 e:

  • 第1类
    • 子类
    • 子类
    • 子类
    • 子类
  • 第2类
  • 子类
  • 子类 猫
  • 子猫
  • 子猫
  • 我正在使用这个查询,但它似乎不起作用。怎么办

    $sql = mysql_query("SELECT category.dname AS dname, sub_cats.dname AS sdname
                       FROM category
                       LEFT JOIN sub_cats
                       ON category.id = sub_cats.catid
                       ORDER BY category.id");
    
    while ($row = mysql_fetch_array($sql)) {
    
        $cats .= '<li><a href="?'.$row['dname'].'">'.$row['dname'].'</a></li>
        <li> - - - <a href="?'.$row['sdname'].'">'.$row['sdname'].'</a></li>';
    }
    
    $sql=mysql\u查询(“选择category.dname为dname,sub cats.dname作为sdname
    从类别
    左加入sub_猫
    在category.id=sub_cats.catid上
    按类别分类的订单(id);
    while($row=mysql\u fetch\u数组($sql)){
    $cats.='
  • -
  • '; }
    尝试分离查询

    $sql = mysql_query("SELECT category.dname AS dname
                       FROM `category`
                       ORDER BY category.id");
    
    while ($row = mysql_fetch_array($sql)) {
    
        $cats .= '<li><a href="?'.$row['dname'].'">'.$row['dname'].'</a></li>';
    
            $sql2 = mysql_query("SELECT sub_cats.dname AS sdname
                               FROM `sub_cats`
                               WHERE sub_cats.catid = " . $row['id']);
    
            while ($row2 = mysql_fetch_assoc($sql2)) {
    
                $cats .= '<li> - - - <a href="?'.$row['sdname'].'">'.$row['sdname'].'</a></li>';
            }
    }
    
    $sql=mysql\u查询(“选择category.dname作为dname
    来自`类别`
    按类别分类的订单(id);
    while($row=mysql\u fetch\u数组($sql)){
    $cats.='
  • '; $sql2=mysql\u查询(“选择sub\u cats.dname作为sdname 来自sub_猫` 其中sub_cats.catid=“.$row['id'); 而($row2=mysql\u fetch\u assoc($sql2)){ $cats.='
  • -
  • '; } }
    这是使用当前查询进行打印的方式:

    $cats .= '<ul>';
    $currentCat = null;
    while ( $row = mysql_fetch_array($sql) ) {
        if( $row[ 'dname' ] !== $currentCat ) {
            if( $currentCat !== null ) $cats .= '</ul>';
            $currentCat = $row[ 'dname' ];
            $cats .= '<li><a href="?'.$row['dname'].'">'.$row['dname'].'</a></li>';
            $cats .= '<ul>';
        }
        $cats .= '<li><a href="?'.$row['sdname'].'">'.$row['sdname'].'</a></li>';
    }
    if( $currentCat !== null ) $cats .= '</ul>';
    $cats .= '</ul>';
    
    $cats.='
      '; $currentCat=null; while($row=mysql\u fetch\u数组($sql)){ 如果($row['dname'])!=$currentCat){ 如果($currentCat!==null)$cats.='
    '; $currentCat=$row['dname']; $cats.='
  • '; $cats.='ul>'; } $cats.='
  • '; } 如果($currentCat!==null)$cats.=''; $cats.='';
    您需要使用
    {}
    格式化您的代码和示例。它当前输出的是什么?当前输出:(它在每个子类别中显示类别名称)移动辅助设备---滚轮移动辅助设备---膝盖步行机移动辅助设备---拐杖移动辅助设备---步行机移动辅助设备---手杖