将mysql_fetch_array结果转储为多维数组

时间:2011-12-23 00:27:49

标签: php mysql multidimensional-array

感谢所有的大师们。

我正在尝试在个人资料页面上创建上一个和下一个按钮。如果我正在查看Arnsdorf的个人资料,我想要一个前一个按钮链接到Antonio,另一个按钮链接到Baldeviso。

ID不是顺序的,您可以从lname:

排序的输出中看到
ID: 22 Name: Airaghi
ID: 36 Name: Antonio
ID: 27 Name: Arnsdorf
ID: 13 Name: Baldeviso
ID: 46 Name: Barnes

这是我的代码:

    $sql = "SELECT id,lname FROM profiles ORDER BY lname";

    $query = mysql_query($sql);
        if (!$query) {
            die('Invalid query: ' . mysql_error());
        }

    while ($row = mysql_fetch_array($query, MYSQL_BOTH)) {

        printf ("ID: %s  Name: %s", $row[0], $row["lname"]);
          echo "<br>";
    }

mysql_free_result($query);

但我不能把它变成array来排序。

我希望创建一个3列multi-dimensional array,其数据集看起来大致如下:

row,id,lname
1,22,Airaghi
2,36,Antonio
3,27,Arnsdorf
4,13,Baldeviso
5,46,Barnes

然后我可以弄清楚如何获得Arnsdorf的行数。然后得到+1和-1的行号,这样我就可以在我的超链接中使用它们各自的id。

我已经查了几个小时,但是我找不到任何代码示例,它们会将mysql数据转储到一个永久足以进行此类排序的带编号的多维数组中。谢谢你的帮助。

2 个答案:

答案 0 :(得分:3)

您可以将每一行分配给数组,然后从该数组中回显数据。这是一个例子:

$persons = array();
while($row = mysql_fetch_assoc($query)) {
    $persons[] = $row;
}

// To access ID of user in third row
echo $persons[2]['id'];
// Name of that person
echo $persons[2]['lname'];

答案 1 :(得分:0)

实际上非常简单:

while($row = mysql_fetch_array($query)){
    $profiles[] = $row;
}

现在你将拥有一个这样的数组:

array(
    0 => array('id' => 22, 'lname' => 'Airaghi'),
    1 => array('id' => 36, 'lname' => 'Antonio'),
    etc...
)

然后,您只需从$profiles[$index]['id']$profiles[$index]['lname']

访问它即可