Gomes0707 0 Denunciar post Postado Maio 7, 2015 Olá pessoal será que alguém pode me ajudar quero realizar uma consulta no Wordpress usando um select com vários valores no campo preço quando selecionar o select com o valor de 100 até 1000 que ele retorne os valores entre esse valores da mesma maneira de 1001 até 2000 aqui está a consulta da página de resultado! desde já agradeço Código <?php if(isset($_REQUEST['imovel'])): $negocio = $_REQUEST['srcnegocio']; $tipo = $_REQUEST['srctipo']; $valor = $_REQUEST['srcpreco']; $cidade = $_REQUEST['srccidade']; $bairro = $_REQUEST['srcbairro']; $args = array( 'post_type' => 'post', 'post_status' => 'publish', 'category_name'=>$negocio, ); $args['meta_query'][] = array( 'key' => 'tipo_de_imovel', 'value' => $tipo, 'compare' => 'LIKE', ); $args['meta_query'][] = array( 'key' => 'valor', 'value' =>$valor, 'compare' => 'LIKE', 'type' => 'NUMERIC', ); $args['meta_query'][] = array( 'key' => 'cidade', 'value' => $cidade, 'compare' => 'LIKE', ); $args['meta_query'][] = array( 'key' => 'bairro', 'value' => $bairro, 'compare' => 'LIKE', ); endif; ?> <?php Compartilhar este post Link para o post Compartilhar em outros sites
Ted k' 126 Denunciar post Postado Maio 7, 2015 Tente: $args['meta_query'][] = array( 'key' => 'valor', 'value' => array( 100, 200 ), 'compare' => 'BETWEEN', 'type' => 'numeric', ); Compartilhar este post Link para o post Compartilhar em outros sites
Gomes0707 0 Denunciar post Postado Maio 7, 2015 Já tentei mais só retorna o primeiro resultado certo, mais o de 1001 a 2000 não retorna! Compartilhar este post Link para o post Compartilhar em outros sites
Ted k' 126 Denunciar post Postado Maio 7, 2015 Tem algo no banco cadastrado com esses valores e a soma dos outros campos para a query? abra o phpmyadmin e teste essa query que você está fazendo, veja se retorna algo. Compartilhar este post Link para o post Compartilhar em outros sites
Gomes0707 0 Denunciar post Postado Maio 7, 2015 Sim tem os mesmo valores cadastrado no banco de dados, valores de 100 até 1000 e de 1000 até 2000 só que quando coloco o array(100,1000) ele retorna os valores quem no banco de dados certinho mas quando faço o filtro de 1000 até 2000 ele me retorna os mesmo valores de 100 até 1000! Compartilhar este post Link para o post Compartilhar em outros sites
Ted k' 126 Denunciar post Postado Maio 7, 2015 Desculpa a demora eu estava fazendo um teste aqui, criei algo parecido com o seu e funcionou a dica que eu coloquei... Faz uma pesquisa só para confirmar minha dúvida, pesquisa de 100 a 150 ou de 100 a 300 para ver os resultados que vem. Está removendo os pontos e virgulas na hora da pesquisa? Compartilhar este post Link para o post Compartilhar em outros sites
Gomes0707 0 Denunciar post Postado Maio 7, 2015 veja meu select no html se ten algo errado <option value=""><?php _e(' Por Preço');?></option> <option value="1000">De R$ 100,00 Até R$ 1.000,00</option> <option value="2000">De R$ 1.000,00 Até R$ 2.000,00</option> <option value="3000">De R$ 2.000,00 Até R$ 3.000,00</option> <option value="3500">De R$ 3.000,00 Até R$ 3.500,00</option> <option value="4000">De R$ 3.500,00 Até R$ 4.000,00</option> <option value="5000">De R$ 4.000,00 Até R$ 5.000,00</option> </select> Eu quero que me retorne o resultado através da variável $valor = $_REQUEST['srcpreco']; se passar value = array(100,1000) como vou pega o resultado de 100 até 2000? Compartilhar este post Link para o post Compartilhar em outros sites
Ted k' 126 Denunciar post Postado Maio 7, 2015 coloca os dois no campo! <option value="100,1000">De R$ 100,00 Até R$ 1.000,00</option> Depois faz um explode na virgula e separa os valores no array! Compartilhar este post Link para o post Compartilhar em outros sites
Gomes0707 0 Denunciar post Postado Maio 7, 2015 Valeu Ted K Obrigado por tudo só mais uma coisa quer dizer que dou um explode $valor = '100,1000'; exemplo $separa = explode($valor1,','); <option value="<?php echo $separa;?>">De R$ 100,00 Até R$ 1.000,00</option> e depois separa o valor no array da consulta exemplo $args['meta_query'][] = array( 'key' => 'valor', 'value' => array( 100, 200 ), 'compare' => 'BETWEEN', 'type' => 'numeric', ); é isso? desde já obrigado! Compartilhar este post Link para o post Compartilhar em outros sites
Gomes0707 0 Denunciar post Postado Maio 8, 2015 Valeu muito obrigado pela sua ajuda deu certo eu fiz assim! <?php if(isset($_REQUEST['imovel'])): $negocio = $_REQUEST['srcnegocio']; $tipo = $_REQUEST['srctipo']; $valores = $_REQUEST['srcpreco']; $cidade = $_REQUEST['srccidade']; $bairro = $_REQUEST['srcbairro']; list($valor1,$valor2) = split('[,]',$valores); $args = array( 'post_type' => 'post', 'post_status' => 'publish', 'category_name'=>$negocio, ); $args['meta_query'][] = array( 'key' => 'tipo_de_imovel', 'value' => $tipo, 'compare' => 'LIKE', ); $args['meta_query'][] = array( 'key' => 'valor', 'value' =>array($valor1,$valor2), 'type' => 'NUMERIC', 'compare' => 'BETWEEN', 'orderby'=>'meta_value_num', 'order'=>'ASC' ); $args['meta_query'][] = array( 'key' => 'cidade', 'value' => $cidade, 'compare' => 'LIKE', ); $args['meta_query'][] = array( 'key' => 'bairro', 'value' => $bairro, 'compare' => 'LIKE', ); endif; ?> Compartilhar este post Link para o post Compartilhar em outros sites
Ted k' 126 Denunciar post Postado Maio 8, 2015 Boa, isso mesmo cara, exatamente isso! No HTML vc deixa escrito sem PHP mesmo, não precisa de HTML no select!! Compartilhar este post Link para o post Compartilhar em outros sites
Gomes0707 0 Denunciar post Postado Maio 8, 2015 Obrigado,eu já arrumei! Compartilhar este post Link para o post Compartilhar em outros sites
Gomes0707 0 Denunciar post Postado Maio 9, 2015 Só mais uma duvida como posso realizar a pesquisa sem ser obrigatório selecionar o select preço para retornar o resultado ! Porque agora o resultado da pesquisa só retorna algo se o select preço for selecionado,quero que ele seja opcional? Compartilhar este post Link para o post Compartilhar em outros sites
Gomes0707 0 Denunciar post Postado Maio 11, 2015 Deu certo fiz assim! if(!empty($_REQUEST['srcpreco'])): $args['meta_query'][] = array( 'key' => 'valor', 'value' =>array($valor1,$valor2), 'type' => 'NUMERIC', 'compare' => 'BETWEEN', ); endif; Compartilhar este post Link para o post Compartilhar em outros sites
Ted k' 126 Denunciar post Postado Maio 12, 2015 Desculpa não responder, fiquei sem ter como acessar, bom que resolveu!! Compartilhar este post Link para o post Compartilhar em outros sites
Gomes0707 0 Denunciar post Postado Maio 12, 2015 Mesmo assim muito obrigado por sua ajuda, fique com Deus! Compartilhar este post Link para o post Compartilhar em outros sites