Hola Adler,
Lo he intentando hacer como tu decías, pero aunque ya no da error me dice que no hay resultados. He probado poniendo:
Código asp:
Ver originaltmultiple = Remplaza(request.QueryString("tmultiple"),0)
response.Write(tmultiple)
response.end()
Y lo que me muestra está bien, es decir si copio, directamente del Titulo del registro: Director's Cut el response.write me muestra Director's Cut así que no tengo ni idea de donde puede estar el fallo.
Este es el formulario para elegir si busca Intérpretes, Titulo, Director o Todo.
Código asp:
Ver original<form class="formulario1" action="buscarmultiple.asp?tmultiple=tmultiple" method="get" accept-charset="UTF-8">
<label class="invisible" for="tmultiple">Búsqueda</label>
<input name="tmultiple" type="text" id="tmultiple" class="c1" size="5" value="Buscar"/>
<label for="multiple">
<select class="c2" name="multiple" id="multiple">
<option value="1" selected="selected" id="Interprete">Interprete</option>
<option value="2" id="Director" >Director</option>
<option value="3" id="Titulo" >Titulo</option>
<option value="4" id="Todas">Todas</option>
</select>
</label>
<input class="fexplorer" type="submit" name="button3" id="button3" value="Buscar" />
</form>
Y este es el archivo buscarmultiple.asp, bueno parte de él pero es todo el rato igual:
Código asp:
Ver original<% Public Function Remplaza(limpia,caso)
Dim cadena
cadena = trim(limpia)
Select Case caso
Case 0:
cadena = replace(cadena,"'","'")
cadena = replace(cadena,"¿","¿")
cadena = replace(cadena,"¡","¡")
cadena = replace(cadena,"ñ","ñ")
cadena = replace(cadena,"Ñ","Ñ")
cadena = replace(cadena,"á","á")
cadena = replace(cadena,"Á","Á")
cadena = replace(cadena,"é","é")
cadena = replace(cadena,"É","É")
cadena = replace(cadena,"í","í")
cadena = replace(cadena,"Í","Í")
cadena = replace(cadena,"ó","ó")
cadena = replace(cadena,"Ó","Ó")
cadena = replace(cadena,"ú","ú")
cadena = replace(cadena,"Ú","Ú")
cadena = replace(cadena,"'","'")
Case Else
cadena = limpia
End Select
Remplaza = cadena
End Function
%>
<%tmultiple = Remplaza(request.QueryString("tmultiple"),0)
mmultiple= request("multiple")
Select case mmultiple%>
<% case 1:
ssql = "Select * from PELICULAS where Interpretes like '%" & tmultiple & "%' ORDER by " &_
"Anio,Titulo asc"
tabla.Open sSQL,conexion,adopenstatic,adcmdtext
'resultados por pagina a elegir arbitrariamente'
num_registros = 10
session("ssql")=ssql
%>
En cadena he puesto lo de "& #39" sin espacio aunque por programación se vean iguales.
He echo otra prueba usando el escape con las pelis que tienen en el título Director's cut, buscandolas con director si me salen, y haciendo esto:
Código asp:
Ver original<% tit = escape(tabla.fields("Titulo"))
response.Write(tit)%>
%>
Y me saca esto:
Clerks%20Director%27s%20cut
He sustituido:
Código asp:
Ver originalcadena = replace(cadena,"'","& #39")
por
Código asp:
Ver originalcadena = replace(cadena,"'","& #27")
Pero sigue sin funcionar.
He hecho otra prueba poniendo en buscarmultiple.asp esto:
Código asp:
Ver original<% tmultiple = Remplaza(request.QueryString("tmultiple"),0)
session("multiple") = tmultiple%>
Y en nohayresultados.asp esto:
Código asp:
Ver original<% a = session("multiple")
b = escape(a)
response.write(b)
response.End()%>
Con
Código asp:
Ver originalcadena = replace(cadena,"'","& #39")
en buscarmultiple.asp y cuando escribo 's en el buscador me sale esto en pantalla:
%26%2339s
No se porque me escribe eso en vez del %27 que necesito.