代码之家  ›  专栏  ›  技术社区  ›  Jason

将数据库结果添加到数组

  •  5
  • Jason  · 技术社区  · 16 年前

    我脑子里一片空白,我一辈子都想不出解决办法。

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

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

    我将所有订单详细信息(名称、地址)存储在名为“ORDERS”的表中。 我将该订单的所有包存储在名为“packages”的表中。

    我需要做的是使用一个循环,我需要访问数据库结果的每个特定元素(即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 回复  |  直到 16 年前
        1
  •  15
  •   David    16 年前

    你应该这样做:

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

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

    然后,您可以以$data[0]、$data[1]的形式访问行,并以$data[1]['package']、$data[0]['itemtype']的形式访问行中的元素,因为每一行都是关联数组。

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

    推荐文章