Jump to content
  • разработка интернет магазинов на opencart
  • доработка интернет магазинов на opencart

Как правильно сгделать запрос в БД ?


kuripka2222
 Share

Recommended Posts

Здравствуйте, нужно вывести ID всех групп клиентов, но не знаю как построить запрос в БД правильно, помогите плз

 

public function getCustomerGroupsId() {
		$query = $this->db->query("SELECT * FROM " . DB_PREFIX . "customer_group ORDER BY cg.sort_order ASC " . DB_PREFIX . "customer_group.customer_group_id ASC");

		return $query->rows;
	}


 

Link to comment
Share on other sites


public function getCustomerGroupsIds() {
	$query = $this->db->query("SELECT `customer_group_id` FROM `" . DB_PREFIX . "customer_group` ORDER BY `customer_group_id` ASC");

	$data = [];

	foreach ($query->rows as $row){		
		$data[$row['customer_group_id']] = $row['customer_group_id'];
	}

	return $data;
}

 

Link to comment
Share on other sites


16 минут назад, Designer сказал:
public function getCustomerGroupsIds() {
	$query = $this->db->query("SELECT `customer_group_id` FROM `" . DB_PREFIX . "customer_group` ORDER BY `customer_group_id` ASC");

	$data = [];

	foreach ($query->rows as $row){		
		$data[$row['customer_group_id']] = $row['customer_group_id'];
	}

	return $data;
}

 


Спасипотому что) 

Я после пыиюсь выводить в контроллере 

$data['customer_groups'] = $this->model_account_customer_group->getCustomerGroupsIds();

В вигде 

 

{{ customer_groups }}

Но почему на сайте ничего не появляется?

Link to comment
Share on other sites


2 часа назад, kuripka2222 сказал:

В вигде 

 

{{ customer_groups }}

Но почему на сайте ничего не появляется?

Потому что customer_groups массив

Link to comment
Share on other sites


13 часов назад, kuripka2222 сказал:


Спасипотому что) 

Я после пыиюсь выводить в контроллере 

$data['customer_groups'] = $this->model_account_customer_group->getCustomerGroupsIds();

В вигде 

 

{{ customer_groups }}

Но почему на сайте ничего не появляется?

 

{% for customer_group_id in customer_groups %}
{{ customer_group_id }}
{% endfor %}

 

Link to comment
Share on other sites


8 часов назад, Designer сказал:

 

{% for customer_group_id in customer_groups %}
{{ customer_group_id }}
{% endfor %}

 

Спасипотому что, я изначально не правильно гделал. 

Вообещём у меня задача сгделать потому чтонусную систему для клиени. 
Сейчас у меня есть уже все данные, которые мне нужны, но мне еещё надо сгделать калькулятор, чтобы расслитывало какую сумму еещё надо потратить клиенту, чтобы перейти в следующую группу и клиентов.

Помогите плз, уже часа 2 пыиюсь через round(); выищить лисло 

На скриншоте указано, что надо сгделать, думаю понятно))

В контроллере и могдели я вывожу: 

1. Общую стоимость за все заказы

// Контроллер 

$data['config_total_orders'] = array();
		
if ($this->customer->isLogged()) {
    $data['total_orders'] = $this->model_catalog_customers_sale->getTotalsForCustomer($customer_info['customer_id']);
} else {
    $data['total_orders'] = '';
}

// Могдель 
public function getTotalsForCustomer($customerid){
	$sql = $this->db->query("SELECT COUNT(*) as total_number, SUM(total) as total_value FROM " . DB_PREFIX . "order WHERE customer_id = $customerid AND order_status_id > 0 LIMIT 1");
	// As we are only expecting one row of results we can use $sql->row rather than $sql->rows
return $sql->row;
	// the output of which will result in an array('total_number', 'total_value')
}

 

<!-- В вигде -->
{{ total_orders.total_value|round(2) }}

2. Все группы клиентов 

// Контроллер 
$customer_groups = $this->model_catalog_customers_sale->getCustomerGroupss();
		
foreach ($customer_groups as $customer_group) {

	$data['customer_groups'][] = array(
		'reach_value' => $customer_group['reach_value'],
		'reach_group' => $reach_group,			
		'names'              => (($customer_group['customer_group_id'] == $this->config->get('config_customer_group_id')) ? $this->language->get('text_default') : null),
		'name'              => $customer_group['name'],
		'ids'              => $customer_group['customer_group_id'],
	);
}


// Могдель
public function getCustomerGroupss($data = array()) {
	$sql = "SELECT * FROM " . DB_PREFIX . "customer_group cg LEFT JOIN " . DB_PREFIX . "customer_group_description cgd ON (cg.customer_group_id = cgd.customer_group_id) WHERE cgd.language_id = '" . (int)$this->config->get('config_language_id') . "'";

	$sort_data = array(
		'cgd.name',
		'cg.sort_order'
	);

	if (isset($data['sort']) && in_array($data['sort'], $sort_data)) {
		$sql .= " ORDER BY " . $data['sort'];
	} else {
		$sql .= " ORDER BY cgd.name";
	}

	if (isset($data['order']) && ($data['order'] == 'DESC')) {
		$sql .= " DESC";
	} else {
		$sql .= " ASC";
	}

	if (isset($data['start']) || isset($data['limit'])) {
		if ($data['start'] < 0) {
			$data['start'] = 0;
		}

		if ($data['limit'] < 1) {
			$data['limit'] = 20;
		}

		$sql .= " LIMIT " . (int)$data['start'] . "," . (int)$data['limit'];
	}

	$query = $this->db->query($sql);

	return $query->rows;
}
 {% for customer_group in customer_groups %}
 {% if customer_group.ids in [5] %}
 <!-- Не знаю как записать по другому, чтобы не выводить группу клиентов с id = 5 :) , пропотому чтовал через "if not", не полулилось вывести все кроме группы с id = 5 -->
 {% else %}
 <p style="float:left;width: 25%;">
 Имя: {{ customer_group.name }} <br>
 Цена: {{ customer_group.reach_value|round(2) }}<br>
 ID группы: {{ customer_group.ids }}
 </p>
 {% endif %}



По игдее мне просто надо записать правильно в контроллере функцию калькулятора, чтобы было {{ customer_group.reach_value|round(2) }} - {{ total_orders.total_value|round(2) }} = лисло. 

Link to comment
Share on other sites


22 минуты назад, Designer сказал:

В разгдел услуги...

Да зачем мне услуги, когда я самостоятельно хочу разобраться. Да как я развиваюсь в программировании и изучаю на данный момент php, но иногда глухо на столько, что спрашиваю совеи липотому что помощи непотому чтольшой)) Все равно если никто не подскажет, то буду возиться сам и найду решение 

Link to comment
Share on other sites


Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.