我有<table>
根据通过$_GET
变量获得的用户选择来更新数据。以下两个选项中的哪一个是将数据加载到<table>
?
1。)php include()
就像......
<?php
$problem_id = (int)$_GET['problem_id'];
$table .= '<table>';
include('path/to/file/' . $problem_id . '.php'); //$problem_id.php would contain the <tr>'s and <td>'s that go in the <table>.
$table.= '</table>';
echo $table;
?>
2。)使用MySQL数据库就像......
<?php
$problem_id = (int)$_GET['problem_id'];
/*
Go to DB and get the entry which contains <tr>'s and <td>'s that
go in the <table> and put it into the variable $table_content.
*/
$table = '<table>' . $table_content . '</table>';
echo $table;
?>
这里有明显的选择吗?两种方法的优点/缺点?
感谢。
答案 0 :(得分:3)
根据我的经验,文件包含会更快,但您必须测试您的系统才能确定。以下是对同一主题的全面讨论:
What's quicker; including another file or querying a MySQL database in PHP?
答案 1 :(得分:0)
我想说这主要取决于文本的大小,以及你将拥有多少文本。
如果您要拥有数十个(或数百个,甚至数千个)包含大量内容的大型复杂页面,那么include()
就可以了。您可以直接在文件系统上编辑它们。
如果您将拥有数千个(或更多)更简单的页面,那么使用数据库可能会更有效。如果你想索引和搜索它们,这将是一个好主意。
作为一个相当随意的阈值,每个文件将占用最少4 kB,因此如果它们的内容少于那个,则可能会浪费它们的空间。
在这两种情况下,您都希望将滥用保护措施用于创建大量内容的人员。
problem_id=../../../passwords.php
形式的查询,以及如果人们自己可能产生问题就让你的文件系统被吃掉。最后,存在作为数据库实现的文件系统,以及作为文件系统实现的数据库。他们并没有那么不同;它们只针对不同的东西进行了优化。
答案 2 :(得分:0)
您必须做出决定取决于每个选项good
和bad
方
数据库选项
好的一面 - 如果您使用版本控制(EG git
),则必须能够administrators
修改html
模板admin panel
那么最好的选择是数据库,因为如果文件存储,则通过admin panel
和git
在服务器上修改文件同时,您将在服务器更新期间发生冲突
错误的一面 - 1)
您必须执行更多操作才能从数据库中获取并显示文件大小写。 2)
由于您的模板存储在db中,您将在数据库上有额外的负载,如果您有性能优化问题,以后必须实现文件缓存
文件选项
好的一面 - 1)
开发人员可以轻松修改IDE editors (E.G. eclipse)
上的html模板,然后在db或admin面板中修改它。 2)
文件包含匹配更快,代码中的操作更少,然后数据库(通常情况下,如果您没有特定情况)。 3)
您不需要实现已存储在文件中的文件缓存
坏的方面 - 1)如上所述,如果您同时修改git
和admin
中的模板,则会遇到git
的问题/ p>
答案 3 :(得分:0)
如果是动态内容,那么你最好的选择是HTML5 + jQuery-Ajax + PHP + Db的组合。
在您的html页面中,您可以使用以下代码:
<table>
<!-- table head -->
<thead>
<tr>
<th>Col #1</th>
<th>Col #2</th>
<th>Col #3</th>
</tr>
</thead>
<!-- result set -->
<tbody id="results">
</tbody>
</table>
您可以使用&#34; Jquery-Ajax&#34;异步询问服务器数据。并填充空表(本例中为#results)。这个应用程序是一个文件&#34; PHP&#34;连接到数据库(可以是任何数据库引擎或MySQL数据库)。
答案 4 :(得分:-1)
MySQL对我来说是显而易见的选择。动态包含大量PHP文档会使服务器混乱。问题是你真的想要输入或生成新的表格数据吗?您可以将其全部动态创建,然后插入到数据库中。