Я работаю с базой данных 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
Пожалуйста, помогите мне с этим & дайте мне знать, если я делаю что-то не так здесь.
Привет всем Я нашел ответ сам, я публикую ответ для всех, кто имеет такой тип вопроса с запросом. Вот что я сделал:
$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'];
}
Вот и все, обновил значение, которое я искал.
Других решений пока нет …