而 foreach 循环返回随机数字列表


While foreach loop returns random list of numbers

我有几列,我想变成一个表,其中的值作为它所属的行。例:

在我的表中,我有 4 列名为 column1 column2 column3 column4 .这些列只有 1 行可以找到。如SELECT column1, column2, column3, column4 FROM operations WHERE active = '1'
它找到的行看起来像这样(有列)

column1 | column2 | column3 | column4
_____________________________________
3456    | 265     | 795     | 425

我希望它显示一个如下所示的表格:

column1 | 3456
column2 | 265
column3 | 795
column4 | 425

以下脚本有效,但它也显示我认为以某种方式与列关联的数字的随机列表。

function oreAmount() {
        $sql = mysqli_query($this->con, "SELECT `column1`,`column2`,`column3`,`column4` FROM operations WHERE active = '1'");
        while ($row = mysqli_fetch_array($sql)) {
            $rows[] = $row;
            foreach ($row as $key => $var) {
                echo "<tr><td>$key</td><td>$var</td></tr>";
            }
        }
    }

此函数显示以下内容:

0       | 3456
column1 | 3456
1       | 265
column2 | 265
2       | 795
column3 | 795
3       | 425
column4 | 425

我不确定为什么或这些数字来自哪里,我需要删除它们。

你应该使用mysqli_fetch_assoc而不是mysqli_fetch_array

解释

mysqli_fetch_array总是返回具有两种索引的结果。

  1. MYSQLI_NUM(数字键中的索引)
  2. MYSQLI_ASSOC(关联名称中的索引)

因此,要么传递参数,要检索结果,例如

mysqli_fetch_array($result,MYSQLI_ASSOC) .

或简单使用

mysqli_fetch_assoc

使用 mysqli_fetch_assoc 代替mysqli_fetch_array

它将获取结果行作为关联数组

完整描述在这里

尝试使用

mysqli_fetch_assoc($sql)

这样你只会得到列名

http://php.net/manual/en/mysqli-result.fetch-assoc.php