2011-06-13 48 views
0

我在這裏很迷路。PHP發送由Loop生成的HTML郵件

我需要知道,如果有送與循環生成的HTML內容的PHP電子郵件(MySQL的循環,我認爲)

我沒有任何代碼,因爲現在我仍然在尋找一種方式實現這一目標的方法。

簡而言之,我需要通過PHP代碼發送HTML電子郵件。

此HTML郵件將包含一些靜態內容。

其他一些內容將取代mySQL。

問題是我有一些表可能需要重複每個內容我必須發送。

我會解釋一下。

我的用戶可以提交表格。

此表格旨在提供1個或更多作者的詳細信息。

當他們提交表單時,所有的細節都轉到數據庫。

如果他們輸入更多作者的詳細信息,每個作者都將擁有自己的數據庫表。

現在當有更多的作者時,應該發送一封HTML郵件,包括他們輸入信息的每個作者的所有信息。

由於HTML郵件是由簡單的HTML表格製作的,所以這是HTML郵件必須承擔的結構。

1° Table for 1° Author 

2° Table for 2° Author 

3° Table for 3° Author 

等。

現在我的問題很簡單。這可能通過簡單地使用mySQL循環?

如果是的話如何?

你能提供一個非常基本的樣本讓我明白嗎?

還是應該使用別的東西?

謝謝

回答

0

我想你應該考慮不同的數據庫佈局,這也有點兒解決這一問題: 相反每個作者的一張表(你永遠不應該這樣做)在所有作者和一個「content-table」上創建表,它存儲與你當前的「auther-tables」基本相同的信息,但每行都與一個外鍵給作者表中的作者。然後,您可以使用簡單的連接來選擇SELECT,ORDER和GROUP BY作者,並輕鬆地通過一個查詢獲取所有數據。 隨着該查詢的結果,你可以很容易在PHP創建的HTML表格:

如果執行下面的查詢

SELECT a.author_name AS name, c.content_title AS title 
    FROM content c JOIN author a ON a.author_id=c.author_id 
    ORDER BY a.author_name 

你可以做在PHP這樣的事情:

if(count($result) > 0) 
{ 
    $currentName = $result[0]['name']; 
    $tables = "<table><tr><th>" . $currentName . "</th></tr>"; 
    foreach($result as $row) 
    { 
     if($currentName != $row['name']) 
     { 
      $currentName = $row['name']; 
      $table .= "</table><table><tr><th>" . $currentName . "</th></tr>"; 
     } 
     $table .= "<tr><td>" . $row['title'] . "</td></tr>"; 
    } 
    $table .= "</table>"; 
} 
+0

嗨ChrFin,我有類似的情況,但需要你對我的問題的幫助:https://stackoverflow.com/questions/45453338/php-oracle-data-distribution-based-on-department-not-working – 2017-08-02 07:38:19