Как переделать sql запрос в php переменные?

245
16 апреля 2019, 18:20
$cid = (int)$this->customer->getId();
                $pid = (int)$product_query->row['product_id'];
                $customer_new = $this->db->query("
                   SELECT tb03.customer_id, tb01.product_id AS prod_id, sum(tb01.quantity) AS sum_quantity
                   FROM oc_order_product AS tb01
                   LEFT JOIN oc_order AS tb02 ON tb01.order_id = tb02.order_id 
                   LEFT JOIN oc_customer AS tb03 ON tb02.customer_id = tb03.customer_id
                   WHERE tb03.customer_id = '{$cid}'
                   GROUP BY tb03.customer_id, tb01.product_id
                ");
                $ssd = array(
                    'prod_id' => $customer_new->row['prod_id'], 
                    'sum_quantity' => $customer_new->row['sum_quantity'], 

                );
print_r($ssd);

Почему то только один product_id выбирает

Array ( [prod_id] => 40 [sum_quantity] => 10 ) Array ( [prod_id] => 40 [sum_quantity] => 10 ) Array ( [prod_id] => 40 [sum_quantity] => 10 )
Answer 1

Без set

$customer_new = $this->db->query("
   SELECT tb03.customer_id, tb01.product_id, sum(tb01.quantity) AS sum_quantity
   FROM oc_order_product AS tb01
   LEFT JOIN oc_order AS tb02 ON tb01.order_id = tb02.order_id 
   LEFT JOIN oc_customer AS tb03 ON tb02.customer_id = tb03.customer_id
   WHERE tb03.customer_id = '{$cid}'
   GROUP BY tb03.customer_id, tb01.product_id
");

UPD: Если я правильно понял документацию, то должно быть так

$cid = (int)$this->customer->getId();
$pid = (int)$product_query->row['product_id'];
$customer_new = $this->db->query("
  SELECT tb03.customer_id, tb01.product_id AS prod_id, sum(tb01.quantity) AS sum_quantity
  FROM oc_order_product AS tb01
  LEFT JOIN oc_order AS tb02 ON tb01.order_id = tb02.order_id 
  LEFT JOIN oc_customer AS tb03 ON tb02.customer_id = tb03.customer_id
  WHERE tb03.customer_id = '{$cid}'
  GROUP BY tb03.customer_id, tb01.product_id
");
$rows = $customer_new->rows;
$ssd = array();
foreach($rows as $index => $row){
  $ssd[] = array(
    'prod_id' => $row['prod_id'], 
    'sum_quantity' => $row['sum_quantity']
  );
}
print_r($ssd);
READ ALSO
Как получить опции ip пакета в php/С++

Как получить опции ip пакета в php/С++

Интересует опция временных меток, отправляемая в ip пакетеМожно ли каким то образом получить эти метки средствами php ? Попробовал curl_getinfo($ch)...

157
Как обратиться к методу класса через итератор?

Как обратиться к методу класса через итератор?

Есть два класса, второй из них хранит в себе вектор, с указателями на объекты первого классаКак во втором классе через итератор обращаться...

200
не выводятся все рисунки с текстурой

не выводятся все рисунки с текстурой

Я создаю кучу спрайтов и загружаю картинки в текстуры вот так

323
fflush(stdout) в QProcess

fflush(stdout) в QProcess

Задача такова: Существует консольное приложение, осуществляющее некоторое действие (в частности: копирование файла с сохранением времени...

144