У меня есть модель с этой функциейОбновление таблицы с Еогеасп в CodeIgniter
function dummy_system(){
$this->db->select('SKU, size, color')
->from('order_detail')
->where('order_id',"52F4CC00C32");
$query = $this->db->get();
// 2nd query
foreach($query->result() as $row):
$SKU = $row->SKU;
$size = $row->size;
$color = $row->color;
$this->db->select('stock_quantity')
->from('item_stock')
->join('items','items.stock_id = item_stock.stock_id')
->join('item','item.item_id = items.item_id')
->where('item.SKU',$SKU)
->where('item_stock.size',$size)
->where('item_stock.colour',$color);
$query = $this->db->get();
endforeach;
if($query->num_rows() > 0){
return $query->result();
}
else{
return array();
}
}
Этот контроллер
public function index()
{
$this->load->model('nekogear');
$data['dummy'] = $this->nekogear->dummy_system();
echo "<pre>";
die(print_r($data, TRUE));
}
и это результат, который показывает только последний запрос.
Array
(
[dummy] => Array
(
[0] => stdClass Object
(
[stock_quantity] => 5
)
)
)
мой вопрос заключается в том, чтобы сделать цикл по каждому элементу в модели, чтобы получить все результаты запроса с одним order_id? (Ток order_id в два ряда с одинаковым order_id) с этим кодом (которые мне нужно SKU, размер & цветовых значений в следующих запросах)
$this->db->select('SKU, size, color')
->from('order_detail')
->where('order_id',"52F4CC00C32");
$query = $this->db->get();
if($query->num_rows() > 0){
return $query->result();
}
else{
return array();
}
он может получить результат
Array
(
[dummy] => Array
(
[0] => stdClass Object
(
[SKU] => Nisekoi-01
[size] => L
[color] => Biru
)
[1] => stdClass Object
(
[SKU] => Wooser-01
[size] => XL
[color] => Kuning
)
)
)
Учитывая это, я думаю, что проблема заключается в петле foreach внутри моей модели, и я не знаю, как это решить.
спасибо за ваше время и извините за мой плохой английский.
можно попробовать var_dumping '$ this-> db-> last_query();' в вашем Еогеасп, чтобы увидеть, что запросы, которые он пытается делать. Вы также можете попробовать вызвать ['enable_profiler();'] (http://ellislab.com/codeigniter%20/user-guide/libraries/output.html). Я думаю, что это выводит ваши запросы. Это, конечно же, поможет вам отладить ваши запросы и посмотреть, правильно ли они вызываются. –
@JosephMarikle, мой последний результат запроса: Array ( [фиктивный] => SELECT 'stock_quantity' FROM (' item_stock') JOIN '' 'деталей ON items'.'stock_id' =' item_stock'.'stock_id ' JOIN' item' ON 'item'.'item_id' =' items'.'item_id' WHERE 'item'.'SKU' = 'Wooser-01' И' item_stock'.'size' = 'XL' И 'item_stock'.'colour' = 'Kuning' ) – ceroberoz