我有一个带有下拉选择的表单,其选项由数据库中的表确定。我会定期(手动)向下拉列表和数据库添加更多选项。我可以让下拉选项从数据库中获取选项,如下所示:
<select class="form-control" name="category" id="category">
<?php
$sql = "SELECT id, category FROM categories;";
$result = $GLOBALS['conn']->query($sql);
if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
$category = $row['category'];
$id = $row['id'];
echo "<option value='$id'>$category</option>";
}
}
?>
</select>
这将减少我的工作量,因为我现在必须更新的是数据库,表单将自行更新。
或者我可以手动将选项输入到表单中:
<select class="form-control" name="category" id="category">
<option value='1'>option1</option>
<option value='2'>option2</option>
<option value='3'>option3</option>
</select>
这种方式需要更多的手动工作,但每次都不需要连接数据库(服务器的工作量减少)。
我的问题是我应该使用哪种方法?给我更多工作的方法或给服务器更多工作的方法?
答案 0 :(得分:0)
有赞成和反对使用数据库进行选择的论据。至于pro参数,它更容易更新 - 你只需插入一个新值,它就会出现在你的表单中。这种方法的问题在于,每次渲染表单时,应用程序都会执行查询。在拥有数百万次点击的网站中,这不是一个好主意。因此,使用的替代方法是查询结果缓存在某个中间层中,尤其是当这些值没有发生很大变化时。根据我的经验,处理这些值的最佳方法是从配置文件中加载它们。这些值很少会改变,并且可以在那里添加新值。这些仍然可以缓存,不需要数据库命中。