2012-07-29 59 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