Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

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


kuripka2222

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;
	}


 

Надіслати
Поділитися на інших сайтах


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 }}

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

Надіслати
Поділитися на інших сайтах


посмотри что лежит в массиве и затем вызывай что тебе нужно .
print_r('<pre>');
print_r($customer_group);

print_r('</pre>');

Надіслати
Поділитися на інших сайтах


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) }} = число. 

download.jpg

Надіслати
Поділитися на інших сайтах


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

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

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

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.