【问题标题】:Magento updating an array through looping it inside foreachMagento 通过在 foreach 中循环来更新数组
【发布时间】:2014-11-17 04:30:43
【问题描述】:

我正在使用 magento 数据库获取一些适用于产品的税务相关信息。所以在这里我遇到了一个我通过以下查询得到的数组:

//Zend style query.
            $select = $db->select()
                    ->from(array('t1' => $tableName1),
                    array('t1.order_id', 't1.item_id', 't1.product_id', 't1.store_id', 't1.price', 't1.tax_amount', 't1.tax_percent',new Zend_Db_Expr('"0" as product_taxclassid')))
                    ->joinLeft(array('t2' => $tableName2),'t1.item_id = t2.item_id')
                    ->joinLeft(array('t3' => $tableName3),'t2.tax_id = t3.tax_id', array(new Zend_Db_Expr('t3.code as tax_calculation_rate_code'),'t3.priority'))
                    ->join(array('t4' => $tableName4),'t3.Code = t4.code',array('t4.tax_calculation_rate_id'))
                    ->where('t1.Order_id = ?',$OrderId)                                             
                    ->where('t1.Item_id = ?',$ItemId);                                                                  
            //Query 
            $result = $db->fetchall($select);

            //return object
            return $result;     

上面的查询给出以下结果作为返回:

array(2) { [0]=> object(stdClass)#5 (11) { ["order_id"]=> int(75) ["item_id"]=> int(127) ["product_id"]=> int(256) ["store_id"]=> int(4) ["price"]=> string(7) "47.0000" ["tax_amount"]=> string(7) "17.4200" ["tax_percent"]=> string(6) "5.0000" ["product_taxclassid"]=> int(0) ["tax_calculation_rate_code"]=> string(10) "Canada-GST" ["priority"]=> int(0) ["tax_calculation_rate_id"]=> int(3) } [1]=> object(stdClass)#6 (11) { ["order_id"]=> int(75) ["item_id"]=> int(127) ["product_id"]=> int(256) ["store_id"]=> int(4) ["price"]=> string(7) "47.0000" ["tax_amount"]=> string(7) "17.4200" ["tax_percent"]=> string(6) "7.3500" ["product_taxclassid"]=> int(0) ["tax_calculation_rate_code"]=> string(13) "Canada-VC-PST" ["priority"]=> int(1) ["tax_calculation_rate_id"]=> int(10) } }

我试图在返回之前更新这个数组,我想更新的文件是product_taxclassid,它是一个整数类型。那么我该怎么做请建议我,以便我的返回数组可以有["product_taxclassid"]=> int(0) 100

请帮助我,如果我在这里做错了什么,请告诉我。

【问题讨论】:

    标签: php mysql zend-framework magento-1.8


    【解决方案1】:

    大家好,我自己找到了答案,我正在为遇到此类查询问题的任何人发布答案。这是我所做的:

    $select = $db->select()
                        ->from(array('t1' => $tableName1),
                        array('t1.order_id', 't1.item_id', 't1.product_id', 't1.store_id', 't1.price', 't1.tax_amount', 't1.tax_percent',new Zend_Db_Expr('"0" as product_taxclassid')))
                        ->joinLeft(array('t2' => $tableName2),'t1.item_id = t2.item_id')
                        ->joinLeft(array('t3' => $tableName3),'t2.tax_id = t3.tax_id', array(new Zend_Db_Expr('t3.code as tax_calculation_rate_code'),'t3.priority'))
                        ->join(array('t4' => $tableName4),'t3.Code = t4.code',array('t4.tax_calculation_rate_id'))
                        ->where('t1.Order_id = ?',$OrderId)                                             
                        ->where('t1.Item_id = ?',$ItemId);                                                                  
                //Query 
                $result = $db->fetchall($select);
    
    foreach($result as $result){
      $newArray[] = $result->toArray();
    }
    
    foreach($newArray as $key => $value){
       $value['product_taxclassid'] = '100';
      echo $value['product_taxclassid'];
    }
    

    就是这样,更新了我正在搜索的值。

    【讨论】:

      猜你喜欢
      • 2017-01-27
      • 2013-08-19
      • 2016-02-26
      • 2018-06-22
      • 1970-01-01
      • 2014-02-13
      • 2018-06-10
      • 2021-08-26
      • 2018-11-10
      相关资源
      最近更新 更多