我试图将数据从数据库添加到二维数组中。 但是总是有最后的记录。该数组在每个新记录中重新声明。这是一个愚蠢的问题,但如何声明数组onile循环?谢谢
while ( $rq = sqlsrv_fetch_array( $result, SQLSRV_FETCH_ASSOC)) {
$cars1=array
(
array($rq['Car'],"Ordered"=>$rq['Order'],"Sold"=>$rq['Sold'])
);
};
答案 0 :(得分:1)
在循环之前将$cars1
初始化为一个空数组,否则,如果查询未返回任何行,则稍后再引用时将是不确定的。
$cars1 = [];
然后将获取的行添加到循环中。
while ($rq = sqlsrv_fetch_array($result, SQLSRV_FETCH_ASSOC)) {
$cars1[] = [$rq['Car'], "Ordered" => $rq['Order'], "Sold" => $rq['Sold']];
}
答案 1 :(得分:1)
您可以更改SQL以返回正确元素中的字段,例如
select Car, Order as Ordered, Sold
...
然后您可以直接分配数组(使用[]
)以将其添加到列表中...
$cars1 = array();
while ( $cars1[] = sqlsrv_fetch_array( $result, SQLSRV_FETCH_ASSOC));
在MySQL中,有fetch_all
不确定SQL Server中是否有一个。
答案 2 :(得分:-1)
在创建$ cars1数组时应使用append,这样循环内的最终代码应类似于:
$cars1[]=array (
array($rq['Car'],"Ordered"=>$rq['Order'],"Sold"=>$rq['Sold']),
);