2012-11-22 95 views
0

如何将PHP函数的MySQL循环转换为HTML自定义标记标记?

我在PHP函数中有一个MySQL While循环。基本上,如果需要的话,可以重新使用块代码,而不会出现任何用户错误。PHP While循环功能

虽然这是客户端实现。我想让这个过程尽可能简单,让客户端不需要学习PHP就可以添加PHP函数,但也可以通过我的CMS后端插入到textarea中。

我已经有使用preg_replace的自定义标记代码,但涉及函数的内容被设置为一个变量。使用我的MySQL while循环当前设置的方式,它只显示第一行何时/如果我将echo替换为变量。我对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用于转义来自db的有助于防止xss问题的内容。 如果您想使用textareas,请添加标签以代替表格标记。

理想情况下,您应该查看代码中的分隔标记,例如查看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>'; 
}