• Как переделать код фильтрации?

    AlexMaxTM
    @AlexMaxTM
    1. Вы приводите кусок кода, хотя вопрос касается только одной строки
    $category_id = mysql_result(mysql_query("SELECT `category_id` FROM `categories` WHERE `name` = '{$_GET['filter']}'"),0);

    Остальная часть кода вообще не имеет отношения к вопросу к тому, же там содержатся ошибки. Например, если придет filter=2, то сработает первый if и до проверки
    elseif(strlen($_GET['filter']) == 2) вообще дело не дойдет, хотя по логике как раз именно эта ветка условия должна обрабатываться при значении 2.
    К тому же, если уже проверили что $_GET['filter']) == 2, зачем писать
    $filter = "AND `country` = '" . $_GET['filter'] . "'";

    Пишите уже сразу
    $filter = "AND `country` = 2";
    Хм, тоже отошел от темы вопроса :)

    2. По теме вопроса.
    Распарсите свой filter
    Например,
    $arr = explode('-', $_GET['filter']);
    Вы получите массив слов
    А дальше делать с этим массивом то, что вам уже нужно.
    Например,
    $names = explode("' , '", $arr);
    mysql_query("SELECT `category_id` FROM `categories` WHERE `name` IN ('$names')")


    3. Использовать mysql_query, mysql_result уже считается дурным тоном.
    Это очень устаревшие подходы, и уже не работают в современных версиях PHP.
    Используйте современные подходы программирования, а не исправляйте код, который был написан 15 лет назад.
    Ответ написан
    1 комментарий