Во-первых, если вы хотите перебрать все продукты заказа для данного электронного письма (что, я думаю, вы хотите), вы должны изменить метод getOrder()
, чтобы он возвращал:
return $query->rows;
Затем в контроллере нужно изменить:
$data['data1'] = $this->model_order_myorder->getOrder($email) ;
to
$this->data['data1'] = $this->model_order_myorder->getOrder($email);
Наконец, с вашей точки зрения, вы будете обращаться к массиву, а не к объекту, поэтому вам следует убрать лишние echo
(при условии, что это опечатка) и изменить:
echo echo $row->order_id;
и получить индекс как:
echo $row['order_id']
Кроме того, в дополнение к вышесказанному, я предлагаю вам использовать некоторые методы и соглашения по коду, которые можно найти в Opencart:
При доступе к глобальному $_POST
вы можете использовать продезинфицированную версию $this->request->post
В вашем запросе не выполняется отметка таблицы order, что может привести к ошибкам, если вы не установили префикс. И вы не убегаете от $email
, что является хорошей идеей по ряду причин. Кроме того, все упрощается, если вы даете своим таблицам псевдоним. Наконец, объединение таблиц... поэтому я мог бы переписать этот запрос следующим образом:
$sql = "SELECT * FROM `" . DB_PREFIX . "order` o LEFT JOIN " . DB_PREFIX . "order_product op USING (order_id) WHERE o.email = '" . $this->db->escape($email) . "'";
Честно говоря, я не уверен, какие результаты вы ожидаете от этого запроса, но имейте в виду, что если для данного заказа есть несколько продуктов, вы получите несколько возвращенных строк.
Всего несколько советов.. надеюсь, это будет полезно для вас.
person
billynoah
schedule
12.04.2015
order_status_id
не существует в$result
. Ваш цикл странный. Поскольку вы используетеif (isset($result...
вне цикла,$result
будет содержать последний заказ в наборе. Я бы предложил сделатьvar_dump($result);
непосредственно перед этой строкой, чтобы увидеть, содержит ли она ожидаемые данные. - person rjdown   schedule 11.04.2015var_dump($data)
. Если это тоже NULL, ваш запрос не дает никаких результатов. Обратите внимание, что вы должны выполнять запрос в своей модели, а не в контроллере! Чтобы передать данные в представление, вам нужно использовать (в вашем контроллере)$this->data['YOUR_VARIABLE'] = 'whatever';
. Тогда, на ваш взгляд, вы можете использовать $YOUR_VARIABLE. - person rjdown   schedule 11.04.2015