Перейти к публикации
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...

[Решено] sql посчитать количество строк


 Поделиться

Рекомендованные сообщения

Друзья, добрый день!

Работаю с opencart 1.5

Редактирую файл checkout/order.tpl 

 

Так понимаю, тот файл, который как раз заносит информацию о заказах в базу

$this->db->query("INSERT INTO `" . DB_PREFIX . "order` SET invoice_prefix = '" . $this->db->escape($data['invoice_prefix']) . "', store_id = '" . (int)$data['store_id'] . "',  skoka = '$order_skolko', store_name = '" . $this->db->escape($data['store_name']) . "', store_url = '" . $this->db->escape($data['store_url']) . "', customer_id = '" . (int)$data['customer_id'] . "', customer_group_id = '" . (int)$data['customer_group_id'] . "', firstname = '" . $this->db->escape($data['firstname']) . "', lastname = '" . $this->db->escape($data['lastname']) . "', email = '" . $this->db->escape($data['email']) . "', telephone = '" . $this->db->escape($data['telephone']) . "', payment_firstname = '" . $this->db->escape($data['payment_firstname']) . "', payment_lastname = '" . $this->db->escape($data['payment_lastname']) . "', payment_tax_id = '" . $this->db->escape($data['payment_tax_id']) . "', payment_address_1 = '" . $this->db->escape($data['payment_address_1']) . "', payment_city = '" . $this->db->escape($data['payment_city']) . "', payment_postcode = '" . $this->db->escape($data['payment_postcode']) . "', payment_country = '" . $this->db->escape($data['payment_country']) . "', payment_country_id = '" . (int)$data['payment_country_id'] . "', payment_zone = '" . $this->db->escape($data['payment_zone']) . "', payment_zone_id = '" . (int)$data['payment_zone_id'] . "', payment_address_format = '" . $this->db->escape($data['payment_address_format']) . "', payment_method = '" . $this->db->escape($data['payment_method']) . "', payment_code = '" . $this->db->escape($data['payment_code']) . "', shipping_firstname = '" . $this->db->escape($data['shipping_firstname']) . "', shipping_lastname = '" . $this->db->escape($data['shipping_lastname']) . "', shipping_address_1 = '" . $this->db->escape($data['shipping_address_1']) . "', shipping_city = '" . $this->db->escape($data['shipping_city']) . "', shipping_postcode = '" . $this->db->escape($data['shipping_postcode']) . "', shipping_country = '" . $this->db->escape($data['shipping_country']) . "', shipping_country_id = '" . (int)$data['shipping_country_id'] . "', shipping_zone = '" . $this->db->escape($data['shipping_zone']) . "', shipping_zone_id = '" . (int)$data['shipping_zone_id'] . "', shipping_address_format = '" . $this->db->escape($data['shipping_address_format']) . "', shipping_method = '" . $this->db->escape($data['shipping_method']) . "', shipping_code = '" . $this->db->escape($data['shipping_code']) . "', comment = '" . $this->db->escape($data['comment']) . "', total = '" . (float)$data['total'] . "', affiliate_id = '" . (int)$data['affiliate_id'] . "', commission = '" . (float)$data['commission'] . "', language_id = '" . (int)$data['language_id'] . "', currency_id = '" . (int)$data['currency_id'] . "', currency_code = '" . $this->db->escape($data['currency_code']) . "', currency_value = '" . (float)$data['currency_value'] . "', ip = '" . $this->db->escape($data['ip']) . "', forwarded_ip = '" .  $this->db->escape($data['forwarded_ip']) . "', user_agent = '$num_rows', accept_language = '" . $this->db->escape($data['accept_language']) . "', date_added = NOW(), date_modified = NOW()");

Но перед тем как заносить данную информацию я хочу посчитать все заказы сделанные данным пользователем.

Для чего делаю запрос к базе и считаю строки с id данного пользователя:

$order_skolko = $this->db->query("SELECT COUNT(*) FROM `order` WHERE customer_id = '" . (int)$data['customer_id'] . "'");

Но данный запрос мне ничего не возвращает...

Судя по всему я делаю неверный запрос. 

Подскажите, плиз!)

 

Ссылка на комментарий
Поделиться на других сайтах


попробуйте так

$order_skolko = $this->db->query("SELECT COUNT(*) FROM `" . DB_PREFIX . "order` WHERE customer_id = '" . (int)$data['customer_id'] . "'");
Ссылка на комментарий
Поделиться на других сайтах


 

попробуйте так

$order_skolko = $this->db->query("SELECT COUNT(*) FROM `" . DB_PREFIX . "order` WHERE customer_id = '" . (int)$data['customer_id'] . "'");

 

Нет. Не помогло.

А я правильно понимаю, что данный запрос возвращает количество строк и я сразу могу его использовать для вставки в другой запрос?

 

допустим, запросил:

$order_skolko = $this->db->query("SELECT COUNT(*) FROM `order` WHERE customer_id = '" . (int)$data['customer_id'] . "'");

и потом сразу $order_skolko вставляю в запрос INSERT?

или $order_skolko предварительно необходимо преобразовать?

Ссылка на комментарий
Поделиться на других сайтах



$order_skolko = $this->db->query("SELECT COUNT(*)  total FROM `order` WHERE customer_id = '" . (int)$data['customer_id'] . "'");

$skolko =  $order_skolko->row['total'];

Ссылка на комментарий
Поделиться на других сайтах

$order_skolko = $this->db->query("SELECT COUNT(*)  total FROM `order` WHERE customer_id = '" . (int)$data['customer_id'] . "'");

$skolko =  $order_skolko->row['total'];

 

Спасибо тебе, добрый человек!))

Все работает!))

Ссылка на комментарий
Поделиться на других сайтах


На одну строчку короче:

$total = $this->db->query("SELECT COUNT(*) total FROM `order` WHERE customer_id = '" . (int)$data['customer_id'] . "'")->row['total'];
echo $total;
Ссылка на комментарий
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас
 Поделиться

  • Сейчас на странице   0 пользователей

    • Нет пользователей, просматривающих эту страницу.
×
×
  • Создать...

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.