2011-12-23 85 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