2012-11-22 2 views
0

PHP 함수의 MySQL 루프를 HTML 사용자 정의 태그로 변환하는 방법은 무엇입니까?

PHP 함수에서 MySQL While 루프가 있습니다. 기본적으로 블록 코드는 필요한 경우 사용자 오류없이 다시 사용할 수 있습니다.PHP 함수의 MySQL While 루프

이것은 클라이언트 구현을위한 것입니다. 클라이언트가 PHP를 배우지 않고도 PHP 함수를 추가 할 수 있도록이 프로세스를 가능한 한 쉽게 만들고 싶지만 내 CMS 백엔드를 통해 텍스트 영역에 삽입 할 수도 있습니다.

나는 이미 preg_replace을 사용하여 맞춤 마크 업 코드를 가지고 있지만 그 기능의 콘텐츠를 변수로 설정해야합니다. 루프가 현재 설정되어있는 동안 MySQL이있는 방식으로, 에코변수으로 바꾸면 첫 번째 행만 표시됩니다. 변수없이 사용할 수 있는지 알기 위해 preg_replace에 대해 충분히 알지 못합니다.

MySQL의 While 루프/PHP 함수 (예) :

function myPageList($var1,$var2) 
{ 
    global $dbc; 

    $query = "SELECT page_url, title, desc FROM pages ORDER BY nav_order ASC"; 
    $query_result = @mysql_query($query, $dbc); 

    while ($row = mysql_fetch_array($query_result)) 
    { 
     $page = $row['page_url']; 
     $title = $row['title']; 
     $desc = $row['desc']; 
     echo "content goes here"; 
    } 
} 

사용자 정의 마크 업 (최종 결과) : 내가 현재 가지고있는 코드에 추가 여부

[myPageList] 

또는 완전히 다른 것을 사용하십시오. 결국 PHP 함수에 대해 HTML 안전한 사용자 정의 마크 업이 필요합니다.

자세한 내용이 필요하면 알려주십시오.

+0

기본적으로 자신의 템플릿 시스템을 구현하려고합니까? –

+0

Mhmmmz. 함수 안에서 데이터베이스 호출을하는 것은 나에게 새로운 것이다. 따라서 클라이언트가 수동으로 추가 할 수있는 간단한 마크 업으로 만들 수 없다면, 트리거를 선택하면 선택하면 자동으로 페이지에 기능이 추가됩니다. – Tony

답변

0

다음은 HTML 태그로 출력하는 빠르고 더러운 방법입니다. htmlentities는 xss 문제를 방지하는 데 도움이되는 db에서 오는 것을 이스케이프하는 데 사용됩니다. 텍스트 영역을 사용하려면 테이블 마크 업 대신 태그를 추가하십시오.

코드에서 마크 업을 분리하는 것이 이상적입니다. 예를 들어 MVC 디자인 패턴을 살펴보십시오. 나는 이것이 당신을 돕기를 바랍니다.

function myPageList($var1,$var2) { 
global $dbc; 
$query = "SELECT page_url, title, desc FROM pages ORDER BY nav_order ASC"; 
$query_result = @mysql_query($query, $dbc); 

//begin table 
echo '<table>'; 
    while ($row = mysql_fetch_array($query_result)) { 

    $page = htmlentities($row['page_url']); 
    $title = htmlentities($row['title']); 
    $desc = htmlentities($row['desc']); 

    //produce table row 
    echo '<tr>'; 
    echo ' <td>'.$page.'</td>'; 
    echo ' <td>'.$title.'</td>'; 
    echo ' <td>'.$desc.'</td>'; 
    echo '</tr>'; 

    } 
//end table 
echo '</table>'; 
}