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

Оптимизация SQL запросов


tarvolok

Recommended Posts

$data['sort'] всегда разная будет и будет генерировать разный хеш 

 

мы же используем http_build_query 

Внимательно читаем мое условие. Сортировка по наличию ведется в самом запросе. Как такое можно корректно закешировапть?

Т.е. всегда! вначале стоят товары которые в наличии, в конце которых нет.

Змінено користувачем Vladzimir
Надіслати
Поділитися на інших сайтах


Сортировка по наличию ведется в самом запросе. Как такое можно корректно закешировапть?

 

 

Добавив свой элемент в массив и при смени подгружать разные данные

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

 

 

Добавив свой элемент в массив и при смени подгружать разные данные

И как вы себе это представляете?

Вы теоретик или практик?

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

@Vladzimir, практик

 

 

Стоп, давайте разберем Ваши условия

вначале стоят товары которые в наличии, в конце которых нет 

 

Вот сами условия  $data['sort'] => 'p.quantity'  они же сменят хеш

elseif ($data['sort'] == 'p.quantity') {
   $sql .= " ORDER BY p.sort_order"; 
}

С коробки сама сортировка 

 		$sort_data = array(
			'pd.name',
			'p.model',
			'p.quantity',
			'p.price',
			'rating',
			'p.sort_order',
			'p.date_added'
		);	

		if (isset($data['sort']) && in_array($data['sort'], $sort_data)) {
			if ($data['sort'] == 'pd.name' || $data['sort'] == 'p.model') {
				$sql .= " ORDER BY LCASE(" . $data['sort'] . ")";
			} elseif ($data['sort'] == 'p.price') {
				$sql .= " ORDER BY (CASE WHEN special IS NOT NULL THEN special WHEN discount IS NOT NULL THEN discount ELSE p.price END)";
			} else {
				$sql .= " ORDER BY " . $data['sort'];
			}
		} else {
			$sql .= " ORDER BY p.sort_order";	
		} 
Надіслати
Поділитися на інших сайтах

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

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

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

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

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

Вхід

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

Вхід зараз
×
×
  • Створити...

Important Information

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