2010-03-26 86 views
5

Tôi đang trống rỗng ở đây và không thể cho cuộc sống của tôi tìm ra giải pháp.Thêm kết quả cơ sở dữ liệu vào mảng

Kịch bản của tôi là tôi đang lập trình bằng PHP và MySQL. Tôi có một bảng cơ sở dữ liệu trả về kết quả cho một orderid cụ thể. Truy vấn có thể trả về tối đa 4 hàng cho mỗi đơn hàng và tối thiểu là 1 hàng.

Đây là hình ảnh về cách tôi muốn trả lại kết quả. alt text http://sandbox.mcmedia.com.au/nqlsolutions/images/packages.jpg

Tôi có tất cả các đơn đặt hàng (Tên, địa chỉ) ect được lưu trữ trong bảng có tên là "đơn đặt hàng". Tôi có tất cả các gói cho đơn đặt hàng đó được lưu trữ trong một bảng có tên là "gói".

Những gì tôi cần làm là sử dụng một vòng lặp tôi cần phải có quyền truy cập vào từng yếu tố cụ thể của các kết quả cơ sở dữ liệu (IE package1, itemstype1, package2, itemtype2) vv

Tôi đang sử dụng một truy vấn như thế này để thử và có được giữ của chỉ là "số hạng mục:

$sql = "SELECT * FROM bookings_onetime_packages WHERE orderid = '".$orderid."' ORDER BY packageid DESC"; 
$total = $db->database_num_rows($db->database_query($sql)); 

$query = $db->database_query($sql); 

$noitems = ''; 
while($info = $db->database_fetch_assoc($query)){ 
$numberitems = $info['numberofitems']; 

for($i=0; $i<$total; $i++){ 

$noitems .= $numberitems[$i]; 

} 

} 
print $noitems; 

tôi cần phải có quyền truy cập vào từng yếu tố cụ thể vì tôi họ cần phải tạo điền vào một mẫu pdf sử dụng 'FPDF'

tôi hy vọng điều này bất kỳ hướng nào sẽ được đánh giá cao .

Trả lời

14

Bạn nên làm một cái gì đó như thế này:

$data = array(); 
while($row = $db->database_fetch_assoc($query)) 
{ 
    $data[] = $row; 
} 

Bây giờ $ dữ liệu là một mảng mà mỗi phần tử là một dãy kết quả truy vấn.

Sau đó, bạn có thể truy cập các hàng dưới dạng dữ liệu $ [0], $ data [1] và các phần tử trong các hàng dưới dạng dữ liệu $ [1] ['package'], $ data [0] ['itemtype' ], bởi vì mỗi hàng là một mảng kết hợp.

Bạn có thể nhận được số hàng được trả về bằng cách sử dụng số ($ data).

+0

Cảm ơn một triệu câu trả lời của bạn David, rất rõ ràng và phát hiện. – Jason

Các vấn đề liên quan