我想向我的表中显示所有数据中的所有数据,但是有一些错误。我正在尝试访问PHP阵列。但这使我陷入了字符串转换错误。通知是"到字符串转换的数组"我的控制器:
public function actionStockitem() {
$datepost = date('Y-m-d');
$d1 = isset($data['d1']) ? $data['d1'] : $datepost;
$sql = " SELECT s1.name as name
FROM
(SELECT i.item_id,i.name,i.unitcost,
(SUM(s1.qty)) as stock1,
((SUM(s1.qty))* i.unitcost) as cost1
FROM (SELECT item_id,name,unitcost FROM mitem ) as i
JOIN mstocklist s1 ON s1.item_id=i.item_id
JOIN mstock s2 ON s2.id=s1.stock_id
WHERE s2.receive_date <='$d1'
GROUP BY i.item_id
ORDER BY i.name ASC ) s1
LEFT OUTER JOIN
(SELECT i.item_id,i.name,i.unitcost,
(SUM(s1.qty)) as stock2,
((SUM(s1.qty))* i.unitcost) as cost2
FROM (SELECT item_id,name,unitcost FROM mitem ) as i
JOIN msublist s1 ON s1.item_id=i.item_id
JOIN msub s2 ON s2.id=s1.sub_id
WHERE s2.receive_date <='$d1'
GROUP BY i.item_id
ORDER BY i.name ASC ) s2 ON s2.item_id=s1.item_id
WHERE ((s1.stock1)-IFNULL(s2.stock2,0))<>0
ORDER BY s1.name,cost1 ASC ";
$command = Yii::$app->db->createCommand($sql);
$reader = $command->query();
$inames = $reader->readAll();
$temp = array();
$iname = $inames;
$temp['name'] = $iname;
$result[] = $temp;
return $this->render('stockitem', [
'inames' => $inames,
'sql' => $sql,
'result' => $result,
]);
}
这是视图:
<tbody>
<tr>
<td>
<?php
$i = 1;
foreach ($result as $data) {
?>
</td>
</tr>
<tr>
<td align="center"><?php echo $i; ?></td>
<td align="left" class="style3"><?php echo $data['name']; ?></td> //error in this line
<td align="center" class="style3"><?php echo ''; ?></td>
<td align="center" class="style3"><?php echo ''; ?></td>
<td align="center" class="style3"><?php echo ''; ?></td>
<td align="center" class="style3"><?php echo ''; ?></td>
<td align="center" class="style3"><?php echo ''; ?></td>
<td align="center" class="style3"><?php echo ''; ?></td>
</tr>
</tbody>
<?php
$i++;
}
?>
请给我一些建议
不必要地将数据推向inside the array
。 readAll()
返回单个数组中的结果。因此,只需将其传递到查看即可。这样。
$inames = $reader->readAll();
// $temp = array();
//$iname = $inames;
// $temp['name'] = $iname;
// $result[] = $temp;
return $this->render('stockitem', [
'inames' => $inames,
'sql' => $sql,
'result' => $inames,
]);