@Dmitry2307

Почему не срабатывает фильтр в MySQL?

Добрый день. Нужна помощь, не срабатывают фильтры для SQL, при запросе к базе данных, на страницу выводятся товары без применения фильтра, при этом при наборе такого же кода в phpMyAdmin - фильтры применяются.

function loadGoods() { //функция вывода товаров из БД
	$conn = connect();	
	$sql = "SELECT * FROM `smirnov` WHERE visible='1' ORDER BY '$sorting' ";
	$result = mysqli_query($conn, $sql);
	if (mysqli_num_rows($result) > 0) {
		$out = array();
		while($row = mysqli_fetch_assoc($result)) {
			$out[$row["id"]] = $row;
		}
		echo json_encode($out);
	} else {
		echo "0";
	};
	mysqli_close($conn);
};

$sorting = $_GET["sort"];
switch ($sorting) {
	case 'popular';
	$sorting = 'count DESC';
	$sort_name = 'Популярности';
	break;
	case 'cost-asc';
	$sorting = 'cost ASC';
	$sort_name = 'Возрастанию цены';
	break;
	case 'cost-desc';
	$sorting = 'cost DESC';
	$sort_name = 'Убыванию цены';
	break;
	case 'name-asc';
	$sorting = 'name';
	$sort_name = 'От А до Я';
	break;
	default:
	$sorting = 'id DESC';
	$sort_name = 'Нет сортировки';
	break;
}
  • Вопрос задан
  • 107 просмотров
Пригласить эксперта
Ответы на вопрос 2
ThunderCat
@ThunderCat Куратор тега MySQL
{PHP, MySql, HTML, JS, CSS} developer
$sql = "SELECT * FROM `smirnov` WHERE visible='1' ORDER BY '$sorting' ";
$sorting откуда у вас берется?
Ответ написан
@AUser0
Чем больше знаю, тем лучше понимаю, как мало знаю.
Вместо:
function loadGoods() { //функция вывода товаров из БД
  $conn = connect();	
  $sql = "SELECT * FROM `smirnov` WHERE visible='1' ORDER BY '$sorting' ";

сделайте:
function loadGoods($srt) { //функция вывода товаров из БД
  $conn = connect();	
  $sql = "SELECT * FROM `smirnov` WHERE visible='1' ORDER BY {$srt}";

И функцию вызывайте с параметром: loadGoods($sorting)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы