php - 如何使用数据库中的值制作 HTML 下拉列表

标签 php html mysql database

我有这样的 MySQL 数据库表:

Id   Value
1    Etc1
2    Etc2
3    Etc3
4    Etc4

我需要像这样动态填充上表中的数据来实现 HTML 列表:

<select>
   <option value="1">Etc1</option>
   <option value="2">Etc2</option>
   <option value="3">Etc3</option>
   <option value="4">Etc4</option>
</select>

使用 PHP 我可以做类似的事情:

$sql = "SELECT Id, Value FROM Tbl";
$result = mysql_query($sql);

echo "<select>";
while ($row = mysql_fetch_array($result)) {
    echo "<option value='" . $row['Id'] ."'>" . $row['Value'] ."</option>";
}
echo "</select>";

但在这种情况下我不能使用 HTML 扩展,这意味着我的网站地址将是这样的:

www.mysite.com/something/index.php

代替:

www.mysite.com/something/

也许这听起来很傻,但让用户访问 PHP 文件是一种很好的做法吗?我认为更好的方法是当用户重定向到 HTML 文件时。 (我不知道重定向到 PHP 文件是否有任何真正的缺点,但是当重定向到 HTML 文件时看起来更好 .../something/ 而不是 .../something/index.php)

或者我应该在不访问数据库的情况下手动编写 HTML 下拉列表吗?

请提供正确的方法。

最佳答案

从安全的角度来看,让用户访问 PHP 文件并不是一个坏习惯。

删除扩展名可能更漂亮,但这与安全性无关。即使您通过 .htaccess 重写 url,或者如果您通过 Ajax 获取值,正如两者都被建议的那样,您仍然可以访问 PHP 文件。
唯一的区别是外观——如果这对你很重要,隐藏扩展,但你仍然可以访问 PHP 文件——如果你想通过 PHP 获取选项值(这没什么不好),没有办法绕过它.

关于php - 如何使用数据库中的值制作 HTML 下拉列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43753387/

相关文章:

php - Yii 的复杂 STAT GROUP BY

php - 建议使用以下哪种跨分片数据复制选项?

Mysql:比较和过滤时间条目

php - RouteCollection.php 第 218 行中的 MethodNotAllowedHttpException 我该怎么办?

php - 使用 php 和外键插入选项 - 不可能

javascript - 如何制作分类整理器?

css - 背景不适用于 div

html - 基于对 CSS 自定义属性的支持加载样式表?

jquery - 从 html 中的父 css 类转义

mysql - 为什么 "SHOW GLOBAL STATUS"会出现在慢日志中?