dimaxp

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

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

dimaxp    0

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

Работаю с 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'] . "'");

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

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

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

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
shalan    36

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
dimaxp    0

 

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

$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 предварительно необходимо преобразовать?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
chukcha    921


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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
dimaxp    0

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

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

 

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
cmd    251

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Otvet    398


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

Поделиться сообщением


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

Для публикации сообщений создайте учётную запись или авторизуйтесь

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

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти


  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу