2012-07-29 68 views
0

我有一個網站與Mysql數據庫,每行都有HTML(是的,我知道這不是理想的)。問題在於程序員只是複製並粘貼了許多行中的重複文本。因此,如果我需要更新文本,我必須手動編輯多行中的html。我想包含一個'include'或'require'函數,並將通用html存儲在外部文件中,但它似乎不解析mysql輸出(僅顯示靜態html)。因此,如何在包含html的mysql行的標題html中包含對外部文件的引用?也就是說,我需要解析包含在mysql數據庫的一行中的php,而不是從調用數據庫的php頁面中解析。我嘗試了eval函數,但它仍然無法檢索外部php文件。解析Php在Mysql輸出

另一種選擇是複製的文本實際上是數據庫中的另一行。因此,我不知道如何使頁面按特定順序動態從數據庫中拉出多行?

真是一團糟。有任何想法嗎?

乾杯

+0

修復整體設計,而不是嘗試修補此問題。 – 2012-07-30 00:03:49

+0

歡迎來到Stack Overflow! =) – 2012-07-30 00:03:53

+0

謝謝Dagon(嘿,你是那個有電子郵件腳本的人?)。我也在我的網站上使用它。它的工作很多年了。 我如何重新設計這與基本的PHP知識。我沒有另一個程序員。 – user1560275 2012-07-30 00:09:03

回答

0

你可以在獲取它們時解析每一行。

preg_match_all ("#include\((.+)\)#", $row, $result); 
foreach ($result[1] as $value) { 
    include ($value); 
} 

或類似的東西。 :)

http://php.net/manual/fr/function.preg-match-all.php

+0

謝謝,但是這段代碼在一行mysql中不起作用。它不會解析 – user1560275 2012-07-30 01:01:32

+0

至少你知道你不能在任何mysql商店中執行代碼嗎?一個字符串是一個字符串,它永遠不會執行它自己。 你必須在插入之前解析,或者在獲取它之後解析。 像我的回答,你需要選擇行從html_pages WHERE page ='$ page';然後執行我給你的代碼$ row = your_fetched_query ['row'],然後做任何你想做的事情。假設你已經在你的行中放入了「include('whatever_file_you_want_to_include')」。 – Jerska 2012-07-30 01:12:42

+0

好的。看起來我需要一個新的程序員。這超出了我的能力。我有四個下拉框,用戶從第一個框開始,然後第二個從數據庫動態生成。用戶然後選擇一個新項目,並生成第三個框。當用戶在下拉框中選擇項目時,下面顯示了db中的html,其中詳細介紹了他們正在選擇的內容。有許多不同的組合,第一個下拉列表的html與第二個框中選擇的許多組合相同。 – user1560275 2012-07-30 01:29:38