如何使用嵌套为php中的每个循环在数组中添加项目

时间:2016-05-10 15:13:05

标签: php arrays oci

我正在尝试从PHP中的表创建行对象数组。我使用下面的代码来做,但我没有得到预期的结果。

我想要以下格式:

[{"fName":"apple","fprice":11,"quantity":2},{"dName":"orange","fprice":31,"quantity":6}]

但是使用以下代码我只得到最后一行的最后一列值:

$query = 'select fname,fprice,imgpath,fdesc,cid from food_data';
$stid = oci_parse($conn, $query);
oci_execute($stid, OCI_DEFAULT);
while ($row = oci_fetch_assoc($stid)) {
    foreach ($row as $key=>$val) {
        //echo $item." <br />";
        $data = array(
            array(''.$key.''=>''.$val.'') );
    }
    //echo "\n";
}

2 个答案:

答案 0 :(得分:1)

$query = 'select fname,fprice,imgpath,fdesc,cid from food_data';
$stid = oci_parse($conn, $query);
oci_execute($stid, OCI_DEFAULT);
$res = array();
while ($row = oci_fetch_assoc($stid)) {
    $res[] = $row;
}

之后$res将包含您想要的内容。

答案 1 :(得分:1)

更容易使用oci_fetch_all()

oci_fetch_all($stid, $data, null, null, OCI_FETCHSTATEMENT_BY_ROW);

$data将是一个行数组,这些行是列名和列数据的数组。