SuporteTecnico
-
Total de itens
13 -
Registro em
-
Última visita
Posts postados por SuporteTecnico
-
-
Estou tentando fazer um menu de busca onde a pessoa digita a palavra chave e escolhe onde quer procurar nas opções de um select menu.
Meu menu funciona como eu quero porém não estou conseguindo enviar o valor do input text, vejam:
ARQUIVO DE BUSCA
<form method="post" name="form">
<input type="text" name="nome">
<select class="links" name="URL" onchange="if(options[selectedIndex].value) parent.location.href= (options[selectedIndex].value)" size="1" style="background-color: #666666; color: #CCCCCC; font-family: verdana; font-size: 8pt">
<option selected>Selecione...</option>
<option value="lista_autor.asp">Autor</option>
<option value="lista_livro.asp">Livro</option>
</select>
</form>
ARQUIVO DE RETORNO
busca = request.form("nome") <--- não consigo recuperar esta variável.
Alguém tem resposta pra este problema?
-
Resolvido!então... na verdade é o seguinte... ou tu testa o ultimo nome a cada letra buscando uma aproximação, ou usa like e deixa a lista do q parece para ser selecionada...o ol oli oliv ---> se acho correspondente aqui para e retorna este valor. olive
<% '----------------------------------------------------------- Function RetornaSemLetraFinal(arrNome) RetornaSemLetraFinal = left(arrNome,(len(arrNome)-1)) End Function '----------------------------------------------------------- Function RetornaSemLetraFinalPV(arrNome) RetornaSemLetraFinalPV = left(arrNome,(len(arrNome)-4)) End Function '----------------------------------------------------------- SQL="SELECT CODIGOCUTTER FROM tbcutter WHERE NOMECUTTER = '" & pronto & "'" SET RS=CONEXAO.EXECUTE(SQL) if rs.eof then pronto = RetornaSemLetraFinalPV(pronto) Do While RS.eof SQL="SELECT CODIGOCUTTER, nomecutter FROM tbcutter WHERE NOMECUTTER = '" & pronto & "'" SET RS=CONEXAO.EXECUTE(SQL) pronto = RetornaSemLetraFinal(pronto) Loop if not RS.eof then cod_autor=RS("codigocutter") End If Else cod_autor=RS("codigocutter") End If %>
Obrigado a todos que opinaram...
\o/
-
Detalhe:
O valor da busca na db que retorna tem que ser único, é para isso que serve a tabela cutter, existem milhões de nomes de autor no mundo mas o código para cada nome é único.
-
ainda, insistindo naquele codigo q passei...
da uma olhada aqui, fiz um banco access com uma tabela com esses mesmos dados q você passou:
por exemplo, execute esse codigo como consulta:
Select * From tabela Where 'Oliveira' Like Cod_Autor & '*'
ou:Select * From tabela Where 'Oliveira, A.' Like Cod_Autor & '*'
veja q o retorno vai ser "oli" e "oliv". isso não tem mesmo como saber. ou você pega o primeiro, ou você da um jeito de tratar no asp. agora, esses nomes com uma letra no final. exemplo, "King, J." ou "King, P.", resolve se você passar essa ultima letra junto na query. exemplo:Select * From tabela Where 'King, J.' Like Cod_Autor & '*'
por isso sugeri q você juntasse o sobrenome com a primera letra do primero nome.
testa ai nesse banco q fiz. se você não sabe como executar consulta no access, faz o seguinte. com o banco aberto, clica no painel Objetos a esquerda, onde esta escrito Consultas. então clique em Criar consulta no modo Design. vai aparecer uma janela com o titulo "Mostrar tabela". fecha essa janela porque não vamos usar. la em cima, embaxo da opcao Arquivo do menu, o primero botao q tiver la, ao lado do disquete, tem uma flechinha ao lado. clica na flechinha e seleciona Modo SQL. vai aparecer o editor da query. então, la dentro copie um desses codigos q eu passei e clique no botao da exclamacao acima e veja o retorno q ele vai trazer.
então testa essas querys q eu passei q você vai ver o retorno e você vai ver q ele ta selecionando os dados.
Acho que não tem jeito mesmo, vou tentar mostrar para o usuário o mínimo de opções possíveis, pois não posso alterar os dados da Tabela Cutter (é um padrão universal)
http://www.davignon.qc.ca/cutter1.html
Vou tentar fazer o que o Romero sugeriu...
-
Pessoal,
Realmente ta difícil de achar uma solução.
Pensei o seguinte:
Uma função para buscar "Oliveira", não achou busca por "Oliveir", não achou busca por "Olivei" e assim segue um loop até chegar no "Oliv".
Porém nos nomes com ", A" não daria certo. :mellow:
-
na descricao do tópico ta escrito ASP + SQL, então achei q você usava banco sql, o codigo q passei serviria pro sql.
vi agora q seu banco é access, então o codigo convertido pra sintaxe do access seria esse:
Select * From tabela Where 'Oliveira' Like Cutter & '*'
EDITADO:
e quanto aos nomes "Abbott, M." por exemplo, esse M deve ser o primero nome da pessoa. então acho q você deveria pesquisar o nome nesse formato. exemplo, se o cara chama "Antônio Flávio de Oliveira", você procuraria por "Oliveira, A.".
Ok, vou tentar. Desculpe pelo título do tópico, pois até então não sabia qual a melhor forma de fazer essa busca, estava pensando até em delphi...
Obrigado pela força, galerinha desse fórum responde mesmo! Gostei daqui.
-
Kara, mas o problema é que não existe um padrão de dados nessa coluna Cod_autor, porq, Oliv pode ser Olivi também?
Não, a lógica é mais complexa:
É como se fosse um filtro...
O ---> na busca achou ---> O
l ---> na busca achou ---> l
i ---> na busca achou ---> i
v ---> na busca achou ---> v
e ---> na busca achou ---> não achou nada porque não existe, o código foi concluido, pois não tem a letra "e" no cód "Oliv".
i
r
a
Até agora, pelo que entendi seria: você quer encontrar o Número do Autor procurando pela sua asisnatura? que estaria armazenada em Cod_autor?
Sim quando acharmos a proximidade entre "Oliveira" e "Oliv", só tem um código para retornar que vai estar no campo numero (nesse caso é o 48)
Também não tem uma exatidão nos caracteres na coluna cod_autor tem nomes bem distintos, tipo:
133 Abbott, M.
134 Abbott, S.
111 Ba
25 Edw
26 Edwards
Sei que é muito complexo, mas ainda não desisti.
-
Primeiro obrigado pela força kuroi!
Mas não é isso, a busca não pode retornar mais que 1 dado.
exemplo:
"Antônio Flávio de Oliveira"
1° Antes de fazer a busca temos que separar o último sobrenome, neste caso "Oliveira"
já sabemos que a variável do exemplo é "Oliveira", ótimo.
2° Na base de dados vai estar toda a lista de A a Z, mais ou menos assim:
Numero|Cod_autor
51 Kin
52 King
53 King, J.
54 King, P.
55 Kings
144 Naer
145 Naev
146 Naf
45 Ole
46 Oli
47 Olip
48 Oliv <--- Uhuuu, acharemos ele aqui! Retornaremos o numero 48. Mas como?
49 Olivi
51 Olm
52 Olo
53 Oly
Não tenho nem idéia de como fazer isso...
-
O banco de dados é access.
Como disse existem mais de 15000 dados, o script vai ter que varrer toda a tabela em busca da palavra mais próxima.
Me expressei mal, a busca será feita utilizando o último sobrenome.
Exemplo 1:
"Antônio Flávio de Oliveira"
Tabela Cutter
45 Ole
46 Oli
47 Olip
48 Oliv <-- esta aqui pega o numero 48
49 Olivi
51 Olm
52 Olo
53 Oly
54 Om
55 Ome
Exemplo 2:
"Arnaldo Süssekind"
Tabela Cutter
959 Sup
961 Sur
962 Surr
963 Surv
964 Sus <-- esta aqui pega o numero 464
965 Sut
966 Suth
967 Sutt
968 Suz
969 Svi
A sequência vai estar em ordem alfabética, também vou separar em duas colunas (numero, cod_nome) mas a posição não tem como saber.
-
Muito bom! Era isso mesmo, só que não para por aí...
Tem algo muito mais complexo que eu gostaria de fazer, se alguém já viu a tabela Cutter sabe do que estou falando, ela possui mais 15000 códigos.
Bem, vamos ver se consigo passar minha idéia...
Na tabela Cutter existe vários dados como estes:
cod cod_autor
422 Weil
423 Wein
424 Weinm
Preciso que o código sql faça uma busca na Tabela Cutter e faça uma "aproximação" do último sobrenome e retorne o código.
Exeplo de nome:
Arthur Bragança de Vasconcellos Weintraub
Como já conseguimos separar a primeira letra do último sobrenome, ficaria assim a visualização:
W423
Conto com a ajuda de vocês!
Muito obrigado pela a ajuda anterior.
-
é sim. exemplo:
<% Dim primeira_letra primeira_letra = Left(Right(rs("nome"), InStr(StrReverse(rs("nome")), " ")), 1) %>
ou:<% Dim primeira_letra Dim x x = Split(rs("nome"), " ") primeira_letra = Left(x(Ubound(x)), 1) %>
Não consegui montar a sentença...
<%
Dim primeira_letra
primeira_letra = Left(Right(rsL("autor"), InStr(StrReverse(rsL("autor")), " ")), 1)
%>
<input name="cutter" type="text" size="15" alt="yes" value="<%response.Write(primeira_letra)%>" readonly="true"/>
-
Estou com um novo desafio e preciso de ajuda.
Preciso de uma busca no campo "nome" da tabela, que me retorne somente a primeira letra do último sobrenome.
Exemplo:
Arthur Bragança de Vasconcellos Weintraub => deve me retornar somente a letra "W"
Será que é possível isso?
Jumpmenu
em ASP
Postado
Pensando bem acho q nem seria necessário um form porque o próprio menu envia para a página de destino.
Se haver outra opção de fazer isso esta aberto para sugestões...
Basicamente preciso mostrar onde buscar conforme o menu drop down, porém o usuário deve digitar um nome de busca.