小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

如何通過反復(fù)查詢數(shù)據(jù)庫使PHP發(fā)揮作用

 印度阿三17 2019-11-18

我的代碼正在運行,但我對此不滿意,它看起來很臟.
我的問題是,如何使我的代碼不重復(fù)出現(xiàn).
這是我的代碼,

    <?php
// PARENT MENU
$q2 = "SELECT t.*, t2.id as m_id FROM userpage t left join menu t2 on (t2.parent=t.parent and t2.sort=t.sort) WHERE t.parent = (SELECT MIN(parent) from userpage) ORDER BY t.sort ASC";
$r2 = $db->query($q2);
$a2 = $db->fetch_all_array($q2);
foreach($a2 as $k => $v)
  {
    $indent = "&#10149;";
    $tab = "&emsp;";
    $menu_id = $v['m_id'];
    echo $v['pagename'] . "(" . $v['page'] . ")";
    // 1ST SUB MENU
    if ($menu_id != '')
      {
        $q3 = "SELECT t.*, t2.id as m_id FROM userpage t left join menu t2 on (t2.parent=t.parent and t2.sort=t.sort) WHERE t.parent = " . $menu_id . " ORDER BY t.sort ASC";
        $r3 = $db->query($q3);
        $a3 = $db->fetch_all_array($q3);
        foreach($a3 as $k3 => $v3)
          {
            $menu_id2 = $v3['m_id'];
            echo $v3['pagename'] . "(" . $v3['page'] . ")";
            // 2ND SUB MENU
            if ($menu_id2 != '')
              {
                $q4 = "SELECT t.*, t2.id as m_id FROM userpage t left join menu t2 on (t2.parent=t.parent and t2.sort=t.sort) WHERE t.parent = " . $menu_id2 . " ORDER BY t.sort ASC";
                $r4 = $db->query($q4);
                $a4 = $db->fetch_all_array($q4);
                foreach($a4 as $k4 => $v4)
                  {
                    $menu_id3 = $v4['m_id'];
                    echo $v4['pagename'] . "(" . $v4['page'] . ")";
                    // 3RD SUB MENU
                    if ($menu_id3 != '')
                      {
                        $q5 = "SELECT t.*, t2.id as m_id FROM userpage t left join menu t2 on (t2.parent=t.parent and t2.sort=t.sort) WHERE t.parent = " . $menu_id3 . " ORDER BY t.sort ASC";
                        $r5 = $db->query($q5);
                        $a5 = $db->fetch_all_array($q5);
                        foreach($a5 as $k5 => $v5)
                          {
                            $menu_id4 = $v5['m_id'];
                            echo $v5['pagename'] . "(" . $v5['page'] . ")";
                            // 4TH SUB MENU
                            if ($menu_id4 != '')
                              {
                                $q6 = "SELECT t.*, t2.id as m_id FROM userpage t left join menu t2 on (t2.parent=t.parent and t2.sort=t.sort) WHERE t.parent = " . $menu_id4 . " ORDER BY t.sort ASC";
                                $r6 = $db->query($q6);
                                $a6 = $db->fetch_all_array($q6);
                                foreach($a6 as $k6 => $v6)
                                  {
                                    $menu_id5 = $v6['m_id'];
                                    echo $v6['pagename'] . "(" . $v6['page'] . ")";
                                    // 5TH SUB MENU
                                    if ($menu_id5 != '')
                                      {
                                        $q7 = "SELECT t.*, t2.id as m_id FROM userpage t left join menu t2 on (t2.parent=t.parent and t2.sort=t.sort) WHERE t.parent = " . $menu_id5 . " ORDER BY t.sort ASC";
                                        $r7 = $db->query($q7);
                                        $a7 = $db->fetch_all_array($q7);
                                        foreach($a7 as $k7 => $v7)
                                          {
                                            $menu_id6 = $v7['m_id'];
                                            echo $v['pagename'] . "(" . $v['page'] . ")";
                                          } //5th submenu
                                      } //closing if for 5th submenu
                                  } //4th submenu
                              } //closing if for 4th submenu
                          } //3rd submenu
                      } //closing if for 3rd submenu
                  } //2nd submenu
              } //closing if for 2nd submenu
          } //1st submenu
      } //closing if for 1st submenu
  } //parent menu
?>

謝謝.
任何答案都受到高度贊賞.

解決方法:

您可以更改代碼以使用遞歸.執(zhí)行此操作的最簡單方法仍將多次調(diào)用數(shù)據(jù)庫,但您無需在代碼中全部使用它們.

調(diào)用下面的函數(shù)將寫出子菜單及其所有子代/子代等.

它使用recursion起作用,在這種情況下,意味著函數(shù)調(diào)用自身以完成其任務(wù).

function subMenu($menu_id) {
    $q = "SELECT t.*, t2.id as m_id FROM userpage t left join menu t2 on (t2.parent=t.parent and t2.sort=t.sort) WHERE t.parent = " . $menu_id . " ORDER BY t.sort ASC";
    $r = $db->query($q);
    $a = $db->fetch_all_array($q);
    foreach($a2 as $k => $v)
    {
        $menu_id2 = $v['m_id'];
        echo $v['pagename'] . "(" . $v['page'] . ")";
        if ($menu_id2 != '') {
            // write out the submenu of this submenu
            subMenu($menu_id2);
        }
    }
}

帶有縮進(jìn)計數(shù)器.將0傳遞給indent_count

function subMenu($menu_id, $indent_count) {
    $q = "SELECT t.*, t2.id as m_id FROM userpage t left join menu t2 on (t2.parent=t.parent and t2.sort=t.sort) WHERE t.parent = " . $menu_id . " ORDER BY t.sort ASC";
    $r = $db->query($q);
    $a = $db->fetch_all_array($q);
    foreach($a2 as $k => $v)
    {
        $menu_id2 = $v['m_id'];
        // You need to add in an indent based on $indent_count
        echo $v['pagename'] . "(" . $v['page'] . ")";
        if ($menu_id2 != '') {
            // write out the submenu of this submenu
            subMenu($menu_id2, $indent_count   1);
        }
    }
}
來源:https://www./content-2-562151.html

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多