mysql_fetch_row获取列而不是行

时间:2013-04-02 19:49:07

标签: php mysql

我正在尝试使用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所以非常感谢你的帮助。

我希望我已经明确了这个问题。

由于

3 个答案:

答案 0 :(得分: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"];
}

答案 1 :(得分:0)

mysql_fetch_row只是一个枚举数组。

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

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

链接:mysql_fetch_array Documentation

答案 2 :(得分:-1)

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

另外,请始终将输入转义为查询! mysql_real_escape_string()

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

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