Приветствую всех! Почему-то не работает implode. PHP: if(isset($_POST["action"])) { $query = "SELECT * FROM shiny"; if(isset($_POST['brend'])) { $brend_filter = implode("','", $_POST['brend']); $query .= "AND brend IN('".$brend_filter."')"; } Код (Javascript): function filter_data() { let action = 'shiny.php'; let brend = get_filter('brend'); let width = get_filter('width'); let height = get_filter('height'); let diametr = get_filter('diametr'); let season = get_filter('season'); let ship = get_filter('ship'); $.ajax({ url: 'shiny.php', method: 'POST', data: { action: action, brend: brend, width: width, height: height, diametr: diametr, season: season, ship: ship }, success: function (data) { $('#carts').html(data); } }); } function get_filter(class_name) { let filter = []; $('.' + class_name + ':checked').each(function () { filter.push($(this).val()); }); return filter; } $('.sel').click(function () { filter_data(); });
семен семеныч! NULL - не надо делать вардамп ДО присвоения значения. это не мудро как-то. ну или опечатка в имени. короче, мне нах не надо тебя за ручку водить. дальше давай сам.
array(1) { [0]=> string(11) "Continental" } string(46) "SELECT * FROM shinyAND brend IN('Continental')" --- Добавлено --- PHP: $statement = $db->prepare($query); $statement->execute(); $result = $statement->fetchAll(); $total_row = $statement->rowCount(); $out = ''; if($total_row > 0){ foreach($result as $row) { $out .=' <div class="cart"> <img src="' . $row['image'] . '"> <p class="brend"><b>' . $row['brend'] . '</b></p> <p class="name"><b>' . $row['name'] . '</b></p> <p class="width"><b>Ширина: ' . $row['width'] . '</b></p> <p class="height"><b>Высота: ' . $row['height'] . '</b></p> <p class="diametr"><b>Диаметр: ' . $row['diametr'] . '</b></p> <p class="season"><b>Сезон: ' . $row['season'] . '</b></p> <p class="weight"><b>Вес: ' . $row['weight'] . ' кг.</b></p> </div> '; } } else { $out = '<h3>No Data Found</h3>'; } echo $out; Не выводит на страницу, пишет "No Data Found".
ты убедился (надеюсь), что implode работает. теперь надо настроить твою систему чтобы она выводила ошибки. или не игнорируй те, что она уже выводит. я вижу, что у тебя два слова в запросе слиплись. наверняка MySQL по этому поводу ругается. ошибки твои друзья, прислушивайся к ним
видимо потому что не должно мне вот только интересно, если ты догадался заменить AND на WHERE это у тебя инсайт случился или ты сидишь и хyячишь поток "проблем" сразу на несколько форумов, чтобы мировой разум решал твои заморочки. поделись секретом!
Все дошло, дописал Код (Text): if(isset($_POST["action"])) { $query = "SELECT * FROM shiny WHERE brend !='' "; if(isset($_POST["brend"])) { $brend_filter = implode("', '", $_POST["brend"]); $query .= " AND brend IN ('".$brend_filter."')"; } --- Добавлено --- Я не давно начал PHP изучать, кое-что не получается сразу)