簡體   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