2011-07-19 25 views
19

Nếu tôi đang tìm nạp dữ liệu từ cơ sở dữ liệu MySQL và sử dụng vòng lặp while để lặp qua dữ liệu, tôi sẽ thêm mỗi mảng vào mảng như thế nào?Populate PHP Array từ khi Loop

$result = mysql_query("SELECT * FROM `Departments`"); 
while($row = mysql_fetch_assoc($result)) 
{ 

} 

Trả lời

61

Tạo mảng khi bạn lặp lại vòng lặp while.

$result = mysql_query("SELECT * FROM `Departments`"); 
$results = array(); 
while($row = mysql_fetch_assoc($result)) 
{ 
    $results[] = $row; 
} 

Hoặc, nếu bạn đã sử dụng PDO, bạn có thể do this automatically.

+11

Bạn là người đàn ông quá nhanh! ;) – AlienWebguy

+0

cách đặt chỉ một cột trong mảng mảng và chỉ mục phải là khóa chính? –

+0

@bhawin tìm hiểu cách mảng PHP hoạt động và bạn sẽ thấy nó đơn giản – alex

5

này sẽ làm các trick:

$rows = array(); 
$result = mysql_query("SELECT * FROM `Departments`"); 
while($row = mysql_fetch_assoc($result)) 
{ 
    $rows[] = $row; 
} 
5

này đã là một trong những cách nhanh nhất cho tôi để tạo ra (đa chiều) mảng. Tôi không chắc chắn nếu bạn muốn tất cả các kết quả của bạn smooshed vào một mảng hay không.

// Read records 
$query = "SELECT * FROM `Departments`"; 
$query = mysql_query($query); 

// Put them in array 
for($i = 0; $array[$i] = mysql_fetch_assoc($query); $i++) ; 

// Delete last empty one 
array_pop($array); 

Bạn có thể sử dụng print_r ($ array) để xem kết quả.

0

fav của tôi là như sau;

$result=odbc_exec($conn,$sql); 
if ($result) { 
    while($found_results[] = odbc_fetch_array($result)) { } 
    array_pop($found_results); //pop off the empty line from while loading 
} 

bạn không cần phải bật dòng cuối cùng, nhưng nó sẽ để trống nếu bạn bỏ qua. hoạt động tương tự cho mysql rõ ràng.

1

Nếu bạn có nhiều cột trong bảng Departments và bạn muốn lưu trong mảng khác nhau.

$result = mysql_query("SELECT * FROM `Departments`"); 
$dept_id = array(); 
$dept_name=array(); 
while($row = mysql_fetch_assoc($result)) 
{ 
//fetches and store all results in id column on your departments table 
$dept_id= $row['id']; 
//fetches and store all results in name column on your departments table  
$dept_name=$row['name']; 
}