2017-05-04 22 views
1

$ resultのすべてのデータをmyテーブルに表示したいが、何らかのエラーがある。 PHP配列にアクセスしようとしています。しかし、それは私に文字列変換エラーにArrayを投げている。 通知は、「文字列への変換アレイ」 私のコントローラである: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()を使用して、ビューファイルにデータ変数を印刷し、それがPhoophaniat –

+0

@Marut印刷しますWAHT見るために '$データ[「名前」]は'配列です&あなたが、アレイを印刷することはできません 'エコーコマンド。 '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

を使ってください。 –

関連する問題