2011-12-23 81 views
1

感谢您所有的专家。将mysql_fetch_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 

然后我可以弄清楚如何让一行说阿尔恩斯多夫的数量。然后得到+1和-1的行号,这样我就可以获得它们各自的ID,以便在我的超链接中使用。

我查找了几个小时,找不到任何代码示例将mysql数据转储到永久足以执行此操作的已编号的多维数组中。谢谢你的帮助。

回答

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']; 
+0

非常感谢您的快速回复。 – drittenbach 2011-12-23 15:58:19

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']

访问
+0

非常感谢您回答我的解释。 – drittenbach 2011-12-23 15:58:40