Fóruns sobre PHP, JavaScript, HTML, MySQLi, jQuery, Banco de Dados, CSS


Moderador: web

 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 166
Nome: Bruno Bandeira
Sexo: Masculino
Contato:

Buscar por numero aproximado no banco de dados

31-03-2011 09:39

Bom dia a todos do forum, estou voltando depois de um tempo sem postar por aqui. Queria parabenizar o WEB pela dedicação ao forum.

Acho que minha duvida é bastante simples, mas que de fato eu nao encontrei um solução concreta no google!
Bom eu quero fazer uma consulta para encontrar o valor aproximado de um numero. Sem o uso do between, pois não terei dois valores como padrao de consulta!
Eu simplesmente quero encontrar o CEP que se aproxime com o do cliente!

Aguardo, valeu
:cool:
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17666
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Buscar por numero aproximado no banco de dados

31-03-2011 09:41

Mas, o CEP já está cadastrado no banco de dados, e você apenas quer comparar com o que você digitar?

Você pode usar o LIKE, tipo

WHERE cep LIKE '$cep%'

Note que o % está após o $cep, isso significa, que o LIKE vai comparar as iniciais de $cep com os dados cadastrados.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 166
Nome: Bruno Bandeira
Sexo: Masculino
Contato:

Buscar por numero aproximado no banco de dados

31-03-2011 11:22

Mas o cep pode não existir eu quero que ele encontre o mais aproximado! Entende?
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17666
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Buscar por numero aproximado no banco de dados

31-03-2011 11:30

Me explica como é esse seu sistema.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 166
Nome: Bruno Bandeira
Sexo: Masculino
Contato:

Buscar por numero aproximado no banco de dados

31-03-2011 11:33

Estou fazendo um sistema interno para um rede de lavanderias.
Todas as lojas estão cadastradas com seus respectivos CEP. Quando o cliente entra no site, ele coloca o CEP dele e informa a loja mais proxima.
É isso!
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17666
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Buscar por numero aproximado no banco de dados

31-03-2011 11:41

Eu acho que esse script "encontre a loja mais próxima" deve ser feito dessa forma, quando a base for o CEP

O usuário vai digitar o CEP, desse CEP, vai ter uma consulta no site dos correios para pegar a cidade do CEP digitado, após isso, a cidade retornada que será usada para a consulta.

Para isso, você deve ter as cidades das lojas gravadas. Acho que também dá para fazer pelo bairro, ou seja, o usuário digita o CEP, é retornado o bairro, e com ele é feito a pesquisa.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 166
Nome: Bruno Bandeira
Sexo: Masculino
Contato:

Buscar por numero aproximado no banco de dados

31-03-2011 14:20

o problema continua, pois se nao tiver nenhum registro no bairro dele, a consulta vai retornar vazia.
nao sei o que faze!
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17666
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Buscar por numero aproximado no banco de dados

31-03-2011 14:27

Tenta bairro ou cidade. Se não tiver resultado, ai não tem mesmo.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 166
Nome: Bruno Bandeira
Sexo: Masculino
Contato:

Buscar por numero aproximado no banco de dados

31-03-2011 15:13

olha o exemplo http://www.5asec.com.br/index.php
no lado esquerdo, preenche com teu cep la e tu vai ver o que acontece!
:mrgreen:
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17666
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Buscar por numero aproximado no banco de dados

31-03-2011 18:04

Você fez o script com base nos correios como indiquei? Se fizer, o CEP vai retornar bairro e cidade. Ai sua query vai ficar assim:

SELECT colunas FROM suatabela WHERE bairro='$bairro' OR cidade='$cidade'

Sendo que bairro e cidade você vai pegar no retorno com base no CEP digitado.

Então sua query primeiro vai ver o bairro do cara, se tem alguma loja com o bairro digitado, se não tiver, vai procurar a cidade.
0
A melhor hospedagem para o seu site HostGator!
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17666
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Buscar por numero aproximado no banco de dados

31-03-2011 18:22

Montei aqui uma base para te auxiliar. Esse script vai pegar o CEP da variável e vai retornar bairro e cidade em variáveis. Ai você usa elas para sua query.

<?php
function busca_cep($cep){
$resultadocep = @file_get_contents('http://republicavirtual.com.br/web_cep. ... ery_string');
parse_str($resultadocep, $retorno);
return $retorno;
}

$resultado_busca = busca_cep("00000000");
// bairro
echo $resultado_busca['bairro'];
// cidade
echo $resultado_busca['cidade'];
?>
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 166
Nome: Bruno Bandeira
Sexo: Masculino
Contato:

Buscar por numero aproximado no banco de dados

09-04-2011 14:27

Eu estava dando uma olhada, e acho que de alguma forma pode ser feito com um API do google maps, mais ainda não sei como!
Segue o estudo!
:shock:
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17666
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Buscar por numero aproximado no banco de dados

09-04-2011 14:35

Eu acho essa forma ai a mais fácil. Você faz uma consulta procurando esses 2 valores, bairro ou cidade, listando os resultados relacionados. Acho que não tem erro.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 166
Nome: Bruno Bandeira
Sexo: Masculino
Contato:

Buscar por numero aproximado no banco de dados

09-04-2011 14:41

O problema é que isso não resolve, pois digamos que não exista um estabelecimento no bairro do cliente, mas exista um no bairro do lado!
Logo ele ver a lista de lojas da cidade inteira! Não sei se deu pra entender!

Abraços!
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17666
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Buscar por numero aproximado no banco de dados

09-04-2011 15:16

Ah sim, entendi. Talvez se fizesse algo relativo a região dentro da cidade, tipo, Norte, Sul, etc...
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 166
Nome: Bruno Bandeira
Sexo: Masculino
Contato:

Buscar por numero aproximado no banco de dados

09-04-2011 16:04

Pensei até em fazer assim:
$Valor = $_POST["cep"]; $Minimo = $Valor * 0.8; $Maximo = $Valor * 1.2; // Assim você buscará valores com uma tolerância de 20%, acima ou abaixo $sql = "SELECT * FROM tbl_filial WHERE cep_filial >= '$Minimo' AND cep_filial <= '$Maximo'";

mas tambem não sei se esse é o caminho!
Eu sei qeu tem como pq o site que eu coloquei como referencia fez!

:x
0
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 166
Nome: Bruno Bandeira
Sexo: Masculino
Contato:

Buscar por numero aproximado no banco de dados

09-04-2011 16:16

Estive pensando aqui com meus botões, será que se eu fizer alguma coisa relacionada a pegar o CEP do usuario, comparo com os CEP das filias, faço uma subtração, o que der o numero menos provavelmente será o mais próximo, se isso der certo ainda posso fazer uma lista ordenada do mais próximos!
Será que pode ser isso? Se for, e agora como fazer? hehehe
:!:
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17666
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Buscar por numero aproximado no banco de dados

09-04-2011 17:16

Não tenho certeza, mais, acho que o CEP é relativo, tipo, se o CEP é 20500123, se vier outro CEP com base no 20500 é próximo.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 166
Nome: Bruno Bandeira
Sexo: Masculino
Contato:

Buscar por numero aproximado no banco de dados

09-04-2011 17:35

Intão estamos no caminha certo!
:fubar: 8)
Acho que vou conseguir, vou postar aqui e a gente pode afinar ele, ok?
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17666
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Buscar por numero aproximado no banco de dados

09-04-2011 17:53

Veja se acha algo sobre faixa de CEP, se for o que estou pensando, acho que dá certo.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 166
Nome: Bruno Bandeira
Sexo: Masculino
Contato:

Buscar por numero aproximado no banco de dados

09-04-2011 18:42

Pelo que pude consultar e verificar, a proximidade das ruas é devido ao CEP, então fiz uma solução.
Estou sugesto a criticas e erros. Mas vou postar da mesma forma:
<?php require_once('../inc/inc.configdb.php'); //incluir o arquivo de conexão function tratacep($cep_cliente, $cep_loja){ //criei uma função para encontrar as diferenças entre o cep do cliente em relação as das lojas, não deixando que fique negativo. if($cep_cliente > $cep_loja){ //se o cep do cliente for maior que o da loja, ele subtrai normalmente $total = ($cep_cliente - $cep_loja); //calculo } else { // se o cep da loja for maior que a do cliente, ele inverte os numero para efetuar a subtração $total = ($cep_loja - $cep_cliente); //calculo } return $total; //retorna o resultado da subtração } //informo o cep do cliente, pode tambem receber de um formulario (no comentario abaixo). $cep_cliente = '90460065'; //$cep_cliente = $_POST['cep_cliente']; //faço a consulta no banco de dados, onde estão cadastradas as lojas $sql = "select * from tbl_filial where nivel = 'f'"; $res = mysql_query($sql); $num = mysql_num_rows($res); // vejo se retornou algum registro if($num > 0){ //varro todas os registros encontrados e coloco num array chamado $ceps for($i=0; $i<$num; $i++){ //seto o array $ceps['vlr'] com o resultado da função $ceps['vlr'][$i] = tratacep($cep_cliente, mysql_result($res, $i, 'cep_filial')); //aproveito a consulta para resgatar todos os dados da filial, para nao precisar fazer uma nova consulta $ceps['cep'][$i] = mysql_result($res, $i, 'cep_filial'); $ceps['log'][$i] = mysql_result($res, $i, 'logradouro_filial'); $ceps['bai'][$i] = mysql_result($res, $i, 'bairro_filial'); $ceps['nro'][$i] = mysql_result($res, $i, 'nro_filial'); $ceps['com'][$i] = mysql_result($res, $i, 'complemento_filial'); } } //verifico se o array existe if(isset($ceps['vlr'])){ //Ordena um array mantendo a associação entre índices e valores asort($ceps['vlr']); //pego os dados do array foreach ( $ceps['vlr'] as $chave => $valor ) { echo "$chave = $valor" . "<br />"; echo $ceps['cep'][$chave] . "<br />"; echo $ceps['log'][$chave] . "<br />"; echo $ceps['bai'][$chave] . "<br />"; echo $ceps['nro'][$chave] . "<br />"; echo $ceps['com'][$chave] . "<br /><br />"; }//fim foreach } ?>

Fica a critério tambem se alguem quiser, o tratamento de entrada do valor CEP!

Acho que é isso, espero que ajude!
WEB se quiser trocar pra parte de PHP fique a vontade!

Abraços e qualquer coisa grita ae!
8)
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17666
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Buscar por numero aproximado no banco de dados

09-04-2011 18:51

Não entendi muita a lógica que você usou. Mas, dei uma olhada nesse link abaixo que mostra como funciona o CEP

http://www.iftk.com.br/wordpress/entend ... gitos.html

Segundo o que entendi, se você comparar os 5 primeiros números do CEP, já consegue um bom resultado de proximidade.

Tentou se basear nisso?
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 166
Nome: Bruno Bandeira
Sexo: Masculino
Contato:

Buscar por numero aproximado no banco de dados

09-04-2011 18:59

Tentei sim,
A lógica e o segredo são o seguinte,
Na função ele faz as subtrações, e na hora de ordenar os arrays é de forma decrescente. Fazendo com que os que tem menor diferença (resto/sobra) da operação sejam listados como mais próximos!

:rofl:
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17666
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Buscar por numero aproximado no banco de dados

09-04-2011 19:06

Ah sim, é que como não tenho os dados para testar fiquei boiando. :hai:
0
A melhor hospedagem para o seu site HostGator!

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado