2014-02-22 114 views
-1

當前我正在使用一個文件與CSS和all.I有一個問題,因爲我在許多html標記之間使用php輸出。菜單由php require_once附帶的硬編碼頁面組成。不過,我也想從我的數據庫中添加一些頁面。關於輸出的返回值問題

問題:當我有2時,菜單中只顯示了我的數據庫中的1個頁面名稱。它顯示了我製作的第2頁的名稱。不過點擊它,它會從第一頁調出內容。

從我的數據庫頁名稱使用PHP輸出從我的數據庫中<ul id="menu-toc">

頁面的內容後添加在「頁面」部分的底部加入。

更新:我的CSS

<div class="bb-item" id="abscess"> 
<div class="content"> 
<div class="scroller"> 

Content 

</div> 
</div> 
</div> 

頁面

模式後更改了while循環的配售前到

function find_condition() { 

    global $connection; 

    $query = "SELECT * "; 
    $query .= "FROM pages "; 
    $query .= "WHERE visible = 1 "; 
    $query .= "AND subject_id = 2 "; 
    $query .= "ORDER BY position ASC"; 
    $page_set = mysqli_query($connection, $query); 
    confirm_query($page_set); 
    return $page_set; 
} 


$two = find_condition(); 
while($page = mysqli_fetch_assoc($two)) { 

$pagearray = $page['menu_name']; 
?> 




    <ul id="menu-toc" class="menu-toc"> 
    <li class="menu-toc-current">    
    <a href="abscess">ABSCESS</a></li> 
    <li><a href="apthous ulcer">APTHOUS ULCER</a></li> 
    <li><a href="bad breath">BAD BREATH</a></li> 

    <?php 

    $output = "<li>"; 
    $output .= "<a href=\""; 
    $output .= $pagearray; 
    $output .= "\">"; 
    $output .= $pagearray; 
    $output .= "</a></li>"; 
} 
echo $output; 


?> 


</ul> 

</div> 


<div class="bb-custom-wrapper"> 
    <div id="bb-bookblock" class="bb-bookblock"> 
    <?php require_once("abscess.php"); ?> 
    <?php require_once("apthousulcer.php"); ?> 
    <?php require_once("bad breath.php"); ?> 

    <?php 
    $two= find_condition(); 
while($page = mysqli_fetch_assoc($two)) { 

    $pagearray = $page['menu_name']; 
    $content = $page['content']; 

    $output .= "<div class=\"bb-item\" id=\""; 
    $output .= $pagearray; 
    $output .= "\">"; 
    $output .= "<div class=\"content\">"; 
    $output .= "<div class=\"scroller\">"; 
    $output .= "<h2>"; 
    $output .= $pagearray; 
    $output .= "</h2>"; 
    $output .= $content; 
    $output .= "</div>"; 
    $output .= "</div>"; 
    $output .= "</div>"; 
} 
echo $output; 
?> 

回答

0

你開始一個新的<ul>每次通過while循環。在循環之前,你應該只做一次。您每次都通過循環重新初始化$output,但不會將其打印在循環中。因此,您只需在循環完成後打印output的最後一個作業。

$two = find_condition(); 
?> 
    <ul id="menu-toc" class="menu-toc"> 
    <li class="menu-toc-current">    
    <a href="abscess">ABSCESS</a></li> 
    <li><a href="apthous ulcer">APTHOUS ULCER</a></li> 
    <li><a href="bad breath">BAD BREATH</a></li> 

    <?php 
while($page = mysqli_fetch_assoc($two)) { 

    $pagearray = $page['menu_name']; 


    ?> 


    <?php 

    $output = "<li>"; 
    $output .= "<a href=\""; 
    $output .= $pagearray; 
    $output .= "\">"; 
    $output .= $pagearray; 
    $output .= "</a></li>"; 
    echo $output; 
} 


?> 
+0

呃,我按照你的建議。我仍然有這個問題。我現在編輯我的代碼以顯示它現在的樣子 – user3333324

+1

不要從問題中刪除原始代碼。讀者應該如何知道原始問題是什麼?我的回答只有在這方面纔有意義。如果您想要顯示您編碼的代碼,請在最後將其添加爲UPDATE,而不是替換原始代碼。 – Barmar

+0

你仍然在循環之外有'echo $ output',所以你只是迴應最後一行。 – Barmar