Este es el código pero con los if:
Código PHP:
if (sesion.getAttribute("busqueda").equals("Contiene"))
{
System.out.println("Debe de ser Contiene: "+sesion.getAttribute("busqueda"));
rs = st.executeQuery("select * from mapas m,signaturasoriginales s,materias mat,lugargeosec l,autores a WHERE "
+" m.mapaid=s.mapaid AND "
+" m.materiaid=mat.materiaid AND"
+" m.mapaid=l.mapaid AND"
+" m.mapaid=a.mapaid AND"
+" m.signatura like '%"
+ sesion.getAttribute("tematica")
+ "%' OR s.signaturaoriginal like '%"
+ sesion.getAttribute("tematica")
+ "%' OR m.lugargeografico like '%"
+ sesion.getAttribute("geografica")
+ "%' OR l.lugar like '%"
+ sesion.getAttribute("geografica")
+ "%' OR mat.materia like '%"
+ sesion.getAttribute("tematica")
+ "%' OR a.autor='"
+ sesion.getAttribute("autor")
+ "' OR m.fecha='"
+ sesion.getAttribute("cronologica")
+ "'");
}
if (sesion.getAttribute("busqueda").equals("Exacta"))
{
System.out.println("Debe de ser Exacta: "+sesion.getAttribute("busqueda"));
rs = st.executeQuery("select * from mapas m,signaturasoriginales s,materias mat,lugargeosec l,autores a WHERE "
+" m.mapaid=s.mapaid AND "
+" m.materiaid=mat.materiaid AND"
+" m.mapaid=l.mapaid AND"
+" m.mapaid=a.mapaid AND"
+" m.signatura='"
+ sesion.getAttribute("tematica")
+ "' or s.signaturaoriginal='"
+ sesion.getAttribute("tematica")
+ "' or m.lugargeografico='"
+ sesion.getAttribute("geografica")
+ "' or l.lugar='"
+ sesion.getAttribute("geografica")
+ "' or mat.materia='"
+ sesion.getAttribute("tematica")
+ "' or a.autor='"
+ sesion.getAttribute("autor")
+ "' or m.fecha='"
+ sesion.getAttribute("cronologica")
+ "'");
}
if (sesion.getAttribute("busqueda").equals("EmpiezaPor"));
{
System.out.println("Debe de ser Empieza Por: "+sesion.getAttribute("busqueda"));
rs = st.executeQuery("select * from mapas m,signaturasoriginales s,materias mat,lugargeosec l,autores a WHERE "
+" m.mapaid=s.mapaid AND "
+" m.materiaid=mat.materiaid AND"
+" m.mapaid=l.mapaid AND"
+" m.mapaid=a.mapaid AND"
+" m.signatura like '%"
+ sesion.getAttribute("tematica")
+ "' or s.signaturaoriginal like '%"
+ sesion.getAttribute("tematica")
+ "' or m.lugargeografico like '%"
+ sesion.getAttribute("geografica")
+ "' or l.lugar like '%"
+ sesion.getAttribute("geografica")
+ "' or mat.materia like '%"
+ sesion.getAttribute("tematica")
+ "' or a.autor='"
+ sesion.getAttribute("autor")
+ "' or m.fecha='"
+ sesion.getAttribute("cronologica")
+ "'");
}
RowSetDynaClass resultSet = new RowSetDynaClass(rs, false);
request.setAttribute("registros", resultSet);
}
catch (Exception e)
{
out.println("Error de conexion con la base de datos: " + e);
}
Si el tipo de busqueda es contiene o exacta, se mete en su if pero tb en el de empiezapor. De ahi los system.out para poder comprobarlo desde el apache.
Por lo que me hace pensar que el problema venga de la página que llama a la búsqueda. Es un formulario con su combo donde se selecciona el tipo de busqueda. Cuando se sa a buscar, se va a otra jsp donde se crean las variables de sesion y de ahi a la página de resultados.
¿Porque puñetas entra en los 2 if????