将数据库结果添加到数组

时间:2010-03-26 01:52:29

标签: php mysql arrays

我在这里有一个心理空白,不能为我的生活找到解决方案。

我的情况是我在PHP和MySQL编程。我有一个数据库表返回特定orderid的结果。查询每个订单最多可返回4行,最少1行。

这是我想要如何返回结果的图像。 alt text http://sandbox.mcmedia.com.au/nqlsolutions/images/packages.jpg

我将所有orderdetails(名称,地址)等存储在名为“orders”的表中。 我将该订单的所有包存储在名为“packages”的表中。

我需要做的是使用一个循环,我需要访问数据库结果的每个特定元素(IE package1,itemstype1,package2,itemtype2)等等

我正在使用这样的查询来尝试获取“项目数量:

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

我需要访问每个特定元素,因为我需要使用“fpdf”创建填写pdf模板。

我希望这是有道理的。任何方向都将不胜感激。

1 个答案:

答案 0 :(得分:15)

你应该这样做:

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

现在$ data是一个数组,其中每个元素都是查询结果的一行。

然后你可以将行作为$ data [0],$ data [1]和行中的元素作为$ data [1] ['package'],$ data [0] ['itemtype']来访问,因为每一行都是一个关联数组。

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