php - 从 mysql_fetch_array 查询创建一个表单

标签 php mysql forms fetch

我在 MySQL 数据库中有一个名为“位置”的字段 - 它仅向北、南、东、西提供服务。

我使用这段代码只得到了 4 个不同的结果:

$query_form = "SELECT DISTINCT location FROM hotel ORDER BY location ASC";
$result_form = mysqli_query($dbc, $query_form) or die('die query error');
$row_form = mysql_fetch_array($result_form, MYSQLI_NUM);

我想使用这个查询的四个结果来填充一个表:

<option value='1'>North</option>
<option value='2'>South</option>
<option value='3'>East</option>
<option value='4'>West</option>

我用过这个:

foreach ($row_form['location'] as $k => $v) {
    echo '<option value="' . $k . '">' . $v . '</option>\n';
    }

但我担心我的方法行不通 - 遗憾的是,我是菜鸟,无法找出问题所在!

谢谢

最佳答案

mysql_fetch_array只会(引用手册,强调我的):

Fetch a result row as an associative array, a numeric array, or both

因此,您必须多次调用此函数——实际上,每行一次(因此,此处为 4 次)


这通常是通过循环完成的,在获得结果时循环。
在您的情况下,您可能希望使用如下所示的内容:

$lineCounter = 1;
while ($row = mysql_fetch_array($result_form, MYSQL_ASSOC)) {
    // Use your row, here.
    // For instance : $row['location']
    // And you can use the $lineCounter variable, to keep track of the current line number.
    $lineCounter++;
}

注释:

  • 我使用 MYSQL_ASSOC 为每一行获取关联数组:我认为以这种方式工作更容易。
  • while 循环体中,您可以使用 $row 关联数组,按列名索引。


作为旁注,在某些 HTML 代码中注入(inject)数据(例如字符串)时,您应该正确地转义输出,以避免 HTML 注入(inject)。

有关解决方案,请参阅 htmlspecialchars功能。

关于php - 从 mysql_fetch_array 查询创建一个表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5120043/

相关文章:

php - Laravel 5.2 使用 Associate 更新 BelongsTo 关系

php - 插入最新的行

php - 适用于 Ubuntu 的多合一 PHP 包

MySQL 多个连接到同一个表

mysql - 显示上个月和上一年的记录

jquery - 如何将 PayPal 表单输入的值更改为用户通过文本输入给出的值

php - 我怎样才能更好地理解 php 中 symfony2 中的服务层

php - 调用未定义函数 mysql_connect()

javascript - 如何设置 react-stripe-checkout 表单的样式?

php - 使用散列检查具有 $_POST 值的页面是否已刷新