Rurru Posted November 15, 2009 at 04:57 PM Report Share #296334 Posted November 15, 2009 at 04:57 PM Boas. Estou a criar um site e tenho uma pesquisa interna em q ele pesquisa por localidades pre colocadas la. Do género: No site estão defenidadas as localidades Lisboa, Porto, Faro. Eu pesquiso por Braga, dá-me um erro a dizer q não existe. Mas se pesquisar por um das localidades ja existentes ele diz-me q existe. Isto é capaz de ser simples, o problema é q eu n pesco nada de php... Se alguém me pudesse dar uma ajuda agradecia. Link to comment Share on other sites More sharing options...
yoda Posted November 15, 2009 at 05:11 PM Report Share #296339 Posted November 15, 2009 at 05:11 PM Antes de alguém te ajudar, convém sempre mostrares algum empenho da tua parte em tentar descortinar como fazer isso, e depois vir aqui, caso seja necessário, com dúvidas. before you post, what have you tried? - http://filipematias.info sense, purpose, direction Link to comment Share on other sites More sharing options...
Rurru Posted November 15, 2009 at 05:58 PM Author Report Share #296345 Posted November 15, 2009 at 05:58 PM Antes de alguém te ajudar, convém sempre mostrares algum empenho da tua parte em tentar descortinar como fazer isso, e depois vir aqui, caso seja necessário, com dúvidas. Daí eu ter referido que não pescava nada de php... Agora eu n vou descortinar nada, pq n sei onde começa a cortina. Preciso que me digam por onde começar, n q me venham dizer q n mostro empenho... É o primeiro site em php q faço ja montei o include, ja tenho o formulário a chamar uma pagina php agr so n sei o q ponho lá. Link to comment Share on other sites More sharing options...
scorch Posted November 15, 2009 at 07:17 PM Report Share #296357 Posted November 15, 2009 at 07:17 PM Se usas MySql, fazes uma query. Pesquisas no Google e encontras muitos tutoriais. PS: Não respondo a perguntas por mensagem que podem ser respondidas no fórum. Link to comment Share on other sites More sharing options...
yoda Posted November 15, 2009 at 07:18 PM Report Share #296358 Posted November 15, 2009 at 07:18 PM Podias ter referido que já tinhas feito algo em php, ninguém adivinha se dizes que não percebes nada (que até indica o contrário). Boa comunicação ajuda sempre. Deixa aqui o código do formulário sff. before you post, what have you tried? - http://filipematias.info sense, purpose, direction Link to comment Share on other sites More sharing options...
Rurru Posted November 15, 2009 at 07:19 PM Author Report Share #296359 Posted November 15, 2009 at 07:19 PM Se usas MySql, fazes uma query. Pesquisas no Google e encontras muitos tutoriais. E se não usar mysql? Qual é a outra forma? Link to comment Share on other sites More sharing options...
yoda Posted November 15, 2009 at 07:20 PM Report Share #296361 Posted November 15, 2009 at 07:20 PM Onde é que estão definidas essa localidades? before you post, what have you tried? - http://filipematias.info sense, purpose, direction Link to comment Share on other sites More sharing options...
Rurru Posted November 15, 2009 at 07:22 PM Author Report Share #296362 Posted November 15, 2009 at 07:22 PM <form id="serachform" name="serachform" method="post" action="search.php"> <label> <input name="areasearch" type="text" class="searchbox" id="areasearch" size="25" /> <input style="cursor:pointer;" name="search" type="submit" class="searchbox" id="search" value="Procurar" /> </label> </form> APARTE: Usa Geshi, fica o post mais legível. 🙂 Link to comment Share on other sites More sharing options...
Rurru Posted November 15, 2009 at 07:23 PM Author Report Share #296363 Posted November 15, 2009 at 07:23 PM Onde é que estão definidas essa localidades? Pois é isso, eu ponho um if else, ou uma carrada deles, no search.php? So q se isso der eu acho q fica mt palha no codigo... Link to comment Share on other sites More sharing options...
yoda Posted November 15, 2009 at 07:47 PM Report Share #296366 Posted November 15, 2009 at 07:47 PM Pois é isso, eu ponho um if else, ou uma carrada deles, no search.php? So q se isso der eu acho q fica mt palha no codigo... Ou seja, não tens definidas ainda. Mysql é o melhor e mais fácil a usar. O que é que é suposto o resultado do formulário apresentar? before you post, what have you tried? - http://filipematias.info sense, purpose, direction Link to comment Share on other sites More sharing options...
Rurru Posted November 15, 2009 at 07:50 PM Author Report Share #296367 Posted November 15, 2009 at 07:50 PM Apresentar se a localização esta na lista ou não. Link to comment Share on other sites More sharing options...
yoda Posted November 15, 2009 at 10:18 PM Report Share #296403 Posted November 15, 2009 at 10:18 PM Apresentar se a localização esta na lista ou não. Mas apresentar o quê? Páginas estáticas? before you post, what have you tried? - http://filipematias.info sense, purpose, direction Link to comment Share on other sites More sharing options...
Rurru Posted November 15, 2009 at 10:21 PM Author Report Share #296406 Posted November 15, 2009 at 10:21 PM Fazes a pesquisa, carregas em pesquisar e depois abre uma nova página a dizer se a localidade existe ou não. Link to comment Share on other sites More sharing options...
Rurru Posted November 15, 2009 at 10:22 PM Author Report Share #296407 Posted November 15, 2009 at 10:22 PM Mas apresentar o quê? Páginas estáticas? Sim Link to comment Share on other sites More sharing options...
yoda Posted November 16, 2009 at 03:27 PM Report Share #296490 Posted November 16, 2009 at 03:27 PM Nesse caso não precisas de base de dados (se for só isso). Crias um array em php e percorres todos os elementos à procura da string da pesquisa. Depois usas o preg_match() ou substr() para procurar o nome que queres. Exemplo : $string = $_POST['string_que_vem_do_formulario_de_pesquisa'] $zonas = array('Lisboa', 'Leiria', 'Braga', 'Beja', 'Santarém'); foreach ($zonas as $z) { if (preg_match("/\b".$string."\b/i", $z)) { echo 'encontrou!'; } } before you post, what have you tried? - http://filipematias.info sense, purpose, direction Link to comment Share on other sites More sharing options...
jreis Posted November 16, 2009 at 07:36 PM Report Share #296522 Posted November 16, 2009 at 07:36 PM Não há necessidade de usar expressões regulares para um caso tão simples, qualquer coisa deste género funciona (além de ser mais rápido): //strtolower para procuras não "case-sensitive" $string = strtolower($_POST['string_que_vem_do_formulario_de_pesquisa']) //elementos do array em minúsculas (devido ao uso de strtolower()) $zonas = array('lisboa', 'leiria', 'braga', 'beja', 'santarém'); if (in_array($string, $zonas)) echo 'encontrou'; "Pensa positivo: tudo pode piorar" Link to comment Share on other sites More sharing options...
Rurru Posted November 16, 2009 at 07:42 PM Author Report Share #296528 Posted November 16, 2009 at 07:42 PM hum.. array. n tinha pensado nisso, eu ainda n conheço mt de php, n sei o q tem e o q n tem. obrigado pela a ajuda 😛 Link to comment Share on other sites More sharing options...
yoda Posted November 16, 2009 at 09:28 PM Report Share #296561 Posted November 16, 2009 at 09:28 PM @jreis, a função in_array, para alem de nao ser case-insensitive, nao funciona se puseres só parte do nome. before you post, what have you tried? - http://filipematias.info sense, purpose, direction Link to comment Share on other sites More sharing options...
Rurru Posted November 17, 2009 at 12:20 AM Author Report Share #296604 Posted November 17, 2009 at 12:20 AM Obrigado pela a ajuda, entretanto ja dei uns ajustes ao codigo. Acrescentei substring por causa de mandar para lower e depois recolocar a primeira letra em maiúsculo novamente. Pus a validação a funcionar bem, talvez um pouco extensa, mas mais vale ir aos poucos tentando e melhorando. 🙂 😛 Link to comment Share on other sites More sharing options...
jreis Posted November 17, 2009 at 01:49 AM Report Share #296609 Posted November 17, 2009 at 01:49 AM @jreis, a função in_array, para alem de nao ser case-insensitive, nao funciona se puseres só parte do nome. Bem visto, assumi que o campo de pesquisa seria uma select box ou algo do género, em que os valores já estariam preenchidos, por assim dizer. Mesmo assim, acho que o recurso a uma expressão regular simplesmente para fazer uma pesquisa "simples" de valor é demasiado complexa. Algo assim poderia dar conta do recado, a menos que me tenha escapado outra subtileza: $string = $_POST['string_que_vem_do_formulario_de_pesquisa'] $zonas = array('Lisboa', 'Leiria', 'Braga', 'Beja', 'Santarém'); foreach ($zonas as $z) if (stripos($z, $string) !== false) { echo 'encontrou'; break; } para apenas obter correspondências em substrings que ocorroram no início da zona em causa (por exemplo para que uma pesquisa por "Bra" apenas devolva Braga, e não Coimbra), basta alterar a condição do if: if (stripos($z, $string) === 0) Mas pronto, o assunto está resolvido, que é o que interessa! "Pensa positivo: tudo pode piorar" Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now