Filtrar busca

2 respostas
diguix

E o seguinte, tenho que fazer ua consulta no banco mais ela temque ser filtada, mas o like variavel% não esta filtrando da maneira que eu preciso, ja tentei de tudo: converter para array de caracter e comparar com array de caracter do resultado do bd, mas achou que estou falhando na lógica. vou postar meu código se alguem tiver uma dica…
aps não repara as gambiarras hehe

<%@ page import="java.sql.*"%>

<% 
    String nome=request.getParameter("names");
    
	try{

         Class.forName("org.gjt.mm.mysql.Driver");
	     Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/Teste","root","");
	     PreparedStatement stmt=con.prepareStatement("select *  from door where first like  ? or  last like ?");
	 
	     stmt.setString(1,nome+"%");
	     stmt.setString(2,nome+"%");
		
	         ResultSet rs=stmt.executeQuery();
		
	int flag=0;
	char resg[];

	while(rs.next())
	{
	flag=1;
	rs.previous();
	break;
	}

	if (flag==1)
	{

	%>
	<table border=1>
	<tr>
	<td>Last</td>
	<td>First</td>
	<td>Relationship</td>
	<td>Related Resident</td>
	<td>Expiration Date</td>
	<%

		int i=0;
		
			while(rs.next())
			{  
				if(i==0)
				{
					out.print("<tr bgcolor=\"#ffffff\"><td>"+rs.getString("first")+"</td>");
					out.print("<td>"+rs.getString("last")+"</td>");
					out.print("<td>"+rs.getString("relationship")+"</td>");
			        out.print("<td>"+rs.getString("relatresi")+"</td>");
			        out.print("<td>"+rs.getString("expdate")+"</td></tr>");
					i=1;
				}
				else
				{
					out.print("<tr bgcolor=\"#cccccc\"><td>"+rs.getString("first")+"</td>");
					out.print("<td>"+rs.getString("last")+"</td>");
					out.print("<td>"+rs.getString("relationship")+"</td>");
			        out.print("<td>"+rs.getString("relatresi")+"</td>");
			        out.print("<td>"+rs.getString("expdate")+"</td></tr>");
					i=0;
				}
			}

		out.print("</table>");

		rs.close();
		stmt.close();
		con.close();
	}
	else
	{
	out.print("<h1>Not Found</h1>");
	}

	}
	catch(Exception e)
	{
	out.print(e.getMessage());	
	}
%>

vlw abs’[]

2 Respostas

furutani

A % deve ir junto com o select.

"select *  from door where first like  ?% or  last like ?%");
diguix

Ja tentei dessa maneira tmb mas não deu certo eh pq tem uma implementação de ajax que eu não coloquei aki , e ta passando direto, parece que não ta testando!!

msm assim vlw… abs

Criado 30 de janeiro de 2007
Ultima resposta 30 de jan. de 2007
Respostas 2
Participantes 2