2010-03-26 109 views
5

我在這裏有一個精神空白,不能爲我的生活弄清楚一個解決方案。向數組添加數據庫結果

我的場景是我在PHP和MySQL編程。我有一個數據庫表返回特定的orderid的結果。該查詢可以返回每個訂單最多4行,最少1行。

這是我想如何返回結果的圖像。 alt text http://sandbox.mcmedia.com.au/nqlsolutions/images/packages.jpg

我已將所有存儲在名爲「orders」的表中的orderdetails(名稱,地址)等存儲在名爲「orders」的表中。 我把這個訂單的所有包存儲在名爲「packages」的表中。

我需要的是使用一個循環,我需要能夠訪問數據庫結果的每個特定元素(IE包1,itemstype1,包2,itemtype2)ECT

我使用這樣的查詢嘗試做並得到的只是「商品數量:

$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; 

我需要訪問每個特定的元素,因爲我他們需要創建使用填寫PDF模板‘持有。FPDF’

我希望這有道理,任何方向都將不勝感激。

回答

14

你應該做這樣的事情:

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

現在$的數據是一個數組,其中每個元素是查詢結果的一行。然後你可以像$ data [1] ['package'],$ data [0] ['itemtype']那樣訪問行作爲$ data [0],$ data [1] ],因爲每一行都是一個關聯數組。

您可以使用count($ data)獲取返回的行數。

+0

非常感謝你的回答大衛,非常清楚和現貨。 – Jason 2010-03-26 05:35:33