[英]MySQL While Loop in PHP Function
我在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.