0

我正在尝试使用 mysql_fetch_row 从数据库中获取各个行,但是当我回显它时,它将列作为行例如 $row_columns[0] 是第 1 列,$row_columns[1] 是第 2 列,请允许我显示你我正在使用的代码。

mysql_select_db($database_Takeaway, $Takeaway);
    $query_columns = "SELECT * FROM `rest_site` WHERE linkid = '$rest_id'";
    $columns = mysql_query($query_columns, $Takeaway) or die(mysql_error());
    $row_columns = mysql_fetch_row($columns);

并显示它。

echo($row_columns[0])

我试过

print_r($row_columns)

这就是反馈以下内容

数组 ( [0] => 1001 [1] => [2] => [3] => 0 [4] => [5] => 1837 [6] => 测试标题 [7] => 测试文本 [ 8] => [9] => [10] => )

以上是所有 1 行数据,而我需要它是单独的列,所以我可以执行以下操作。

echo $row_columns[0]['name']
echo $row_columns[0]['postcode']

我已经对此进行了大量搜索,但似乎找不到任何有帮助的东西,我检查了 php.net 以及一般的谷歌搜索,当然还有 Stack Overflow,所以非常感谢你在这方面的帮助。

我希望我已经把问题说清楚了。

谢谢

4

3 回答 3

1

您应该使用mysql_fetch_assoc()列名来获取结果。

此外,如果您不将其放入循环中,您将始终只收到第一行查询。更好的用法是:

mysql_select_db($database_Takeaway, $Takeaway);
$query_columns = "SELECT * FROM `rest_site` WHERE linkid = '$rest_id'";
$columns = mysql_query($query_columns, $Takeaway) or die(mysql_error());
while ($row_columns = mysql_fetch_assoc($columns)) {
    echo $row_columns["name"];  
    echo $row_columns["postcode"];
}
于 2013-04-02T19:57:49.430 回答
0

mysql_fetch_row只是一个枚举数组。

您正在寻找mysql_fetch_array关联和枚举数组的结果,以便您可以使用字符串文字数组索引。

您还应该查看 mysqli 或 PDO,因为从 PHP 5.5 开始不推荐使用 mysql。

链接:mysql_fetch_array 文档

于 2013-04-02T19:56:07.527 回答
-1

SELECT *没有正确的陈述,您最好列出您需要的所有列。使它们明确也有助于我们回答您的问题。

另外,请始终对查询的输入进行转义!mysql_real_escape_string()

作为猜测,我认为您错过了获取查询结果始终必须逐行获取的事实。你知道你需要一个循环吗?

此外,如果您想拥有列名,请使用mysql_fetch_assoc().

于 2013-04-02T19:52:54.917 回答