Diego360 0 Denunciar post Postado Agosto 27, 2004 Amigos, bom dia!Estou desenvolvendo um sistema de busca de cep, no arquivo informe_cep.php a pessoa informa no campo $cep o cep que ele está, enviando através de POST para o arquivo busca.php, nesse arquivo faço o SELECT com o cep informado certo ?Como vai ser esse SELECT ? O que mais terei que fazer ?Obrigado e bom dia de trabalho a todos. Compartilhar este post Link para o post Compartilhar em outros sites
FReDiNHoW 0 Denunciar post Postado Agosto 27, 2004 pagina 2 (depois da submissao do formulario):assumindo q você ta usando mysql$consulta = mysql_query("select campo1, campo2 from nomedatabela where nomedocampocep='$cep'")DETALHE:nomedocampocep='$cep'") as aspas simples ( ' ) representam campo do tipo caracter (se você soh usar inteiros entao o tipo seria int e a comparacao: nomedocampocep=$cep")daí voce joga o resultado num vetor:if ($vetor = mysql_fetch_array($consulta)){print "CPF encontrado... exibindo dados: ".$vet["campo1"]." - ".$vet["campo2"]."<br>";}else{print "CPF nao existe!";}espero q ajude... flwPS: Nao esquece do <? e ?> do php.. Compartilhar este post Link para o post Compartilhar em outros sites
Diego360 0 Denunciar post Postado Agosto 27, 2004 Amigo, valeu pelas dicas, mas isso ae eu já fiz...Suponhamos que eu tenha 3 ceps cadastrados:cep1 = 01510222cep2 = 15155644cep3 = 35587978O cara digita 35600111, eu quero que ele volte apenas o cep mais próximo, que é o cep3, entendeu ?Valeu Compartilhar este post Link para o post Compartilhar em outros sites
MrEd 0 Denunciar post Postado Agosto 27, 2004 PHP [/tr][tr]$sql = "Select cep from tabela where cep like '%$cep%'";[/tr] Eduardo Compartilhar este post Link para o post Compartilhar em outros sites
Diego360 0 Denunciar post Postado Agosto 27, 2004 A princípio deu certo Eduardo, obrigado. Compartilhar este post Link para o post Compartilhar em outros sites
MrEd 0 Denunciar post Postado Agosto 27, 2004 Legal B) Eduardo Compartilhar este post Link para o post Compartilhar em outros sites
Diego360 0 Denunciar post Postado Agosto 27, 2004 Infelizmente não deu certo :huh: Ele não retorna valor algum.. quero que ele retorne o mais próximo e simplesmente ele não retorna nada. PHP [/tr][tr] $cep_informado = $_POST["busca_cep"]; $seleciona = "SELECT * FROM loja WHERE cep LIKE '$%cep_informado%' order by cep LIMIT 0,1"; [/tr] Como posso resolver isso ? Compartilhar este post Link para o post Compartilhar em outros sites
walace 1 Denunciar post Postado Agosto 27, 2004 Acho que não tem como fazer isso.Até poderia fazer um select para pegar o número informado no form - 100 ou + 100, por exemplo, mas e se não existirem números nesta faixa ? Não vai retornar nada.100 pode ser muito, posso tentar 10 então, mas e se o número for exato ? Também não vai retornar nada.Acho que o que você pode fazer é mostrar os valores que estão naquela faixa, tipo informo 83100440 e você mostra apenas os que estão entre 83100000 e 83100999. Compartilhar este post Link para o post Compartilhar em outros sites
klawdyo 0 Denunciar post Postado Agosto 28, 2004 Rapaz...tem como fazer sim...e você tá fazendo corretamente...se o CEP é uma seqüencia numérica, e você tem uma lista deles, você pode fazer isso. Assim, ó:Você tem 3 CEPs cadastrados, $cep[1]=01051000;$cep[2]=13800970;$cep[3]=59508970;O usuário pesquisa por 15101000, então nada é retornado, aí o script entra em ação e procura os dois CEPs mais próximos deles. Você vai criar um array com os CEPs organizados em ordem crescente, mas você não pode usar o "-" para não complicar. Aí você pega o CEP imediatamente menor ao que voce digitou.SELECT * FROM ceps WHERE $cep<15101000 LIMIT 1E depois vpcê pega o CEP imediatamente maior.SELECT * FROM ceps WHERE $cep>15101000 LIMIT 1No primeiro caso retornou 13800970 e no segundo retornou 59508970Aí você faz:1) 15101000 - 13800970 = 13000302) 59508000 - 15101000 = 44407000O primeiro retornou um valor menor que o segundo, logo, o CEP de cima é mais próximo do CEP pesquisado do que o de baixo.Mas, fique atento, pois os dois primeiros algarismos do CEP indicam o estado em que ele fica, 59508000 pertence ao RN, 01051000 pertence a SP metropolitano, 15101000 pertence ao interior de SP, etc...você deve ficar atento nisso para não gerar nenhuma coisa anormalidade.Valeu Compartilhar este post Link para o post Compartilhar em outros sites