Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

rafaelbh

[Resolvido] busca pelo nome

Recommended Posts

olá,

estou com uma pequena dúvida...

preciso fazer uma busca pelo nome do funcionário(name_employee), mas quando digito o nome desejado, são mostrados os registros de todos os funcionários! deveria ser mostrado somente o funcionário q foi digitado, ou nomes q continham a palavra digitada.

 

li alguns tópicos e aparentemente meu cód está correto, mas não funciona...

alguém pode me ajudar?

 

código ASP:

 

<%
	 name_employee=request("name_employee")
	 Set rs = Server.CreateObject ("ADODB.RecordSet")	
	 sql="call sp_002_select_eta_employee('"&name_employee&"%')"%>
	 <!-- #include file="../_includes/_functions_data_grid.asp" -->
	<% While ((Repeat1__numRows <> 0) AND (NOT Recordset1.EOF)) %>
	  <tr class="Table_tr" >
		  <td class="Table_td" bgcolor="<%=color%>"><div align="center"><a href="#" onclick="makeRequest('update_employee.asp?cod=<%=Recordset1.fields(0)%>','content', 'get', '')"><%=Recordset1.fields(0)%></a></div></td>
		<td class="Table_td" width="30%"><div align="center"><%=Recordset1.fields(1)%></div></td>
		<td class="Table_td" width="14%"><div align="center"><%=Recordset1.fields(2)%></div></td>
		<td class="Table_td" width="12%"><div align="center"><%=Recordset1.fields(3)%></div></td>
		<td class="Table_td" width="8%"><div align="center"><%=Recordset1.fields(4)%></div></td>
		<td class="Table_td" width="30%"><div align="center"><%=Recordset1.fields(5)%></div></td>
	  </tr>
<%
	  Repeat1__index=Repeat1__index+1
	  Repeat1__numRows=Repeat1__numRows-1
	  Recordset1.MoveNext()
	Wend
	Recordset1.Close()
	Set Recordset1 = Nothing
%></table>

 

código da procedure sp_002_select_eta_employee:

 

CREATE PROCEDURE `etadb`.`sp_002_select_eta_employee` (in param1 char(255))
BEGIN
select *
 from eta_employee ee

 where ee.name_employee like param1;

Compartilhar este post


Link para o post
Compartilhar em outros sites

muitas vezes ao inves de criar uma simples consulta utiliando Stored Procedure, você pode executar direto no metodo execute do objeto recordset:

 

<!--#include file="conn/conexao1.asp"--> 
<% call abreconexao
			
  'crio o rs
  set rs=Server.CreateObject("ADODB.Recordset")
  'crio o SQL
  SQL="SELECT * FROM login ORDER BY login"
  rs.open SQL,conexao,1,3
   %>

Compartilhar este post


Link para o post
Compartilhar em outros sites

muitas vezes ao inves de criar uma simples consulta utiliando Stored Procedure, você pode executar direto no metodo execute do objeto recordset:

 

<!--#include file="conn/conexao1.asp"--> 
<% call abreconexao
			
  'crio o rs
  set rs=Server.CreateObject("ADODB.Recordset")
  'crio o SQL
  SQL="SELECT * FROM eta_employee WHERE name_employee like '%"& param1 &"%' ORDER BY name_employee"
  rs.open SQL,conexao,1,3
   %>

mas quando o volume de dados é muito grande,lembrando que Stored procedure é um excelente recurso para utilizarmos em aplicações. Ela permite que uma série de comandos envolvendo a base de dados sejam encapsulados em um único comando na aplicação. Também permite otimizações que contribuem para a melhoria da performance da aplicação e ainda oferece benefícios de segurança.

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu preciso utilizar procedure mesmo

 

deixei a procedure assim:

DELIMITER $$

DROP PROCEDURE IF EXISTS `etadb`.`sp_002_select_eta_employee` $$
CREATE PROCEDURE `etadb`.`sp_002_select_eta_employee`(in param1 char(255))
BEGIN

 SELECT * FROM eta_employee WHERE name_employee like '%"& param1 &"%' ORDER BY name_employee;

END $$

DELIMITER;

mas quando faço a busca, ele volta a tela em branco.

Compartilhar este post


Link para o post
Compartilhar em outros sites

não faço procedures em mysql, em sql server seria assim para este caso

 

SELECT * FROM eta_employee WHERE name_employee like '%' + @param1 + '%' ORDER BY name_employee;

 

imagino que no mysql seja

 

SELECT * FROM eta_employee WHERE name_employee like CONCAT('%', param1, '%') ORDER BY name_employee;

 

Segue link como guia do mysql http://dev.mysql.com/doc/refman/4.1/pt/create-procedure.html

Compartilhar este post


Link para o post
Compartilhar em outros sites

SELECT * FROM eta_employee WHERE name_employee like CONCAT('%', param1, '%') ORDER BY name_employee;

coloquei isso, mas ela ainda continua ignorando o nome digitado... quando clico no botão, aparecem o registro de todos os funcionários.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.