2014-02-22 1 views
-1

현재 나는 많은 html 태그 사이에 PHP 출력을 사용하고있어 css 및 all.I에 문제가있는 파일을 사용하고 있습니다. 메뉴는 PHP 코드 require_once에 포함 된 하드 코딩 된 페이지로 구성됩니다. 그러나, 나는 또한 내 데이터베이스에서 일부 페이지를 추가하고 싶습니다.출력의 반환 값에 문제가

문제점 : 메뉴에 2가있을 때 데이터베이스에서 1 페이지 이름 만 표시됩니다. 제 2 페이지의 이름이 표시됩니다. 그러나 그것을 클릭하면, 그것은 첫 번째 페이지에서 콘텐츠를 호출합니다.

내 데이터베이스에서 페이지 이름 내 데이터베이스에서 <ul id="menu-toc">

페이지의 내용 이후의 PHP 출력을 사용하여 추가됩니다은 "페이지"섹션의 맨 아래에 추가됩니다.

업데이트 : 나는 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'을 가지고 있습니다. 그래서 마지막 행을 echo하는 것입니다. – Barmar

관련 문제