[英]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.