setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $con->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_NUM); $stmt = $con->prepare('SELECT myorder.id,myorder.customer,orderline.id,orderline.orderid,orderline.item,orderline.qty FROM myorder JOIN orderline ON myorder.id = orderline.orderid'); $stmt->execute(array()); $res = array(); $lastid = -1; $lasto = null; while($row = $stmt->fetch()) { if($lastid != $row[0]) { $lastid = $row[0]; $lasto = new Order($row[0], $row[1], array()); $res[] = $lasto; } $lasto->lines[] = new OrderLine($row[2], $row[3], $row[4], $row[5]); } foreach($res as $o) { echo sprintf('%d %s', $o->id, $o->customer) . "\r\n"; foreach($o->lines as $ol) { echo sprintf(' %s : %d', $ol->item, $ol->qty) . "\r\n"; } } ?>