繁体   English   中英

PHP函数中的MySQL While循环

[英]MySQL While Loop in PHP Function

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

我在PHP函数中有一个MySQL 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安全自定义标记。

如果您需要更多详细信息,请告诉我。

这是一种输出到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>'; 
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM