Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » Общие вопросы по PHP » Почему не работает сортировка новостей по ajax, где я допускаю ошибку?

Почему не работает сортировка новостей по ajax, где я допускаю ошибку?


     23.11.2020    ajax, сортировка, новости    Общие вопросы по PHP, MySQL    1064

вопрос
Всем доброго времени!
Стараюсь сделать сортировку новостей по их категориям на сайте используя технологии AJAX.
На данный момент имею:

Получаю id категорий(взято в functions.php):

$cat_info = get_vars("category");
if (!is_array($cat_info)) {
	$cat_info = [];
	$db->query("SELECT * FROM " . PREFIX . "_category ORDER BY posi ASC");
	while ($row = $db->get_row()) {
		$cat_info[$row['id']] = [];
		foreach ($row as $key => $value) {
			$cat_info[$row['id']][$key] = stripslashes($value);
		}
	}
	set_vars("category", $cat_info);
	$db->free();
}


Затем условие сортирования:

if (trim($ajax_sort['category']) != '') {
	if ($config['allow_multi_category']) {
		$ajax_where[] = "category NOT REGEXP '[[:<:]](" . str_replace(',', '|', $ajax_sort['category']) . ")[[:>:]]'";
	} else {
		$ajax_where[] = "category NOT IN('" . str_replace(',', "','", $ajax_sort['category']) . "')";
	}
}


Ну и $ajax_where вставлен в MySQL запросе.

Сам AJAX запрос работает и присылает в ответ код 200(всё ок!)
Но обработчик не сортирует новости по нужным мне категориям. Может я что-то упускаю?
Подскажите пожалуйста, кто сталкивался? Спасибо!

Ответа пока нет


2 комментария

scarlet
Юзер

scarlet - 23 ноября 2020 07:18 -


if ($config['allow_multi_category']) {
	$where[] = "category REGEXP '[[:<:]](" . str_replace(',', '|', $form_field_arr['category']) . ")[[:>:]]'";
} else {
	$where[] = "category IN('" . str_replace(',', "','", $form_field_arr['category']) . "')";
}

Так правильней.

Orlando_blur
Юзер

Orlando_blur - 23 ноября 2020 16:38 -

Спасибо! незаметил когда копипастил код)

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы

наверх