2017-05-04 30 views
1

我想從$ result顯示所有數據到我的表中,但是有一些錯誤。 我想要訪問一個php數組。但它是拋出我陣列字符串轉換錯誤。 該通知是「數組到字符串轉換」 我的控制器: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++; 
    } 
    ?> 

請給我一些建議

+0

嘗試使用的print_r()來打印你的數據變量視圖文件,看啥子將打印@Marut Phoophaniat –

+0

'$數據[「名」]'是數組&你不能打印陣列的' echo「命令。使用'print_r($ data ['name'])' –

回答

1

你將數據推送到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, 
    ]); 
+0

它的工作。謝謝 –

相關問題