| |||
nop... sigue el mismo error... mañana seguiré peleando, y seguro volveré a molestarlos. llevo casi 12 hs en la pc y ya me parezco a este -> mezclado con este -> gracias por todo gente... saludos
__________________ Juan Pablo |
| |||
hola urjose... es un mal presentimiento: <form action = "busquedaprueba3.asp" method= "post"> <b>INGRESE PALABRA CLAVE </b> <input type = "textarea" name="busqueda" cols = 3 rows = 3 ><BR> saludos
__________________ Juan Pablo |
| ||||
si la data que recibes es cacho/juan/pedro/.... tu vector deberia quedar referenciado asi
Código:
<% limpiar=(Replace(Request.Form("busqueda"),"'","''") vector =Split(limpiar,"/") response.write ubound(vector) response.end %> |
| |||
buenasss bakanzipp, mira, en respuesta a tu mensaje anterior, hice algunos cambios, pero no encuentro el error: Error de Microsoft VBScript en tiempo de ejecución error '800a000d' No coinciden los tipos /BIBLIOTECA/busquedaprueba4.asp, line 18 if instr(Request.Form("busqueda"),"/") Then Busqueda=Split(Replace(Request.Form("busqueda"),"' ","''")," ") vector = split(Busqueda,"/") response.write ubound(vector) 'LINEA 18 response.end strsql="SELECT * FROM PRODUCTOS WHERE NOMBRE LIKE '%"&vector(0)&"%' " If Ubound(vector)>0 Then For i=1 to Ubound(vector) strsql=strsql&" OR autor LIKE '%"&vector(i)&"%' " Next End If Else strsql="SELECT * FROM publicaciones WHERE NOMBRE LIKE '%"&Request.Form("busqueda")&"%' " SET objRS=objConn.Execute(strsql) End if GRACIAS POR ESA MANO DE SIEMPRE!!
__________________ Juan Pablo |
| ||||
cambia esto
Código:
if instr(Request.Form("busqueda"),"/") Then Busqueda=Split(Replace(Request.Form("busqueda"),"'","''")," ") vector = split(Busqueda,"/") response.write ubound(vector) 'LINEA 18 response.end por esto
Código:
Busqueda=Replace(Request.Form("busqueda"),"'","''") vector = split(Busqueda,"/") response.write ubound(vector) response.end |
| |||
ahora ya no me tira error, pero me muestra solamente el número correspondiente a la palabra que ingreso: ej. cacho imprime 0 cacho/juan imprime 1 cacho/juan/jose imprime 2 y solamente ese número, sin nada mas, el resto de la pantalla blanca. ahora estoy metiendole response.write por todos lados para ver hasta donde llega. saludos
__________________ Juan Pablo |
| ||||
es ke de seguro estas imprimiendo el indice y no el contenido despues que creaste el split trata de recorrer tu vector e imprimir su data. for i=lbound(vector) to ubound(vector) response.write vector(i) "<br>" next response.end |
| |||
Creo que ahí debería funcionar, pero me tira el sig error, aunque no encuentro el por qué, me deja mas tranquilo porque no es lo mismo que antes. : Microsoft JET Database Engine error '80040e14' Instrucción SQL no válida; se esperaba 'DELETE', 'INSERT', 'PROCEDURE', 'SELECT' o 'UPDATE'. ahí va parte del codigo como quedó: Busqueda=Replace(Request.Form("busqueda"),"'","''" ) vector = split(Busqueda,"/") response.write ubound(vector) for i =1 to lbound(vector) response.write vector(i) &"<br>" Response.end strsql="SELECT * FROM publicaciones WHERE autor = '%"&vector(0)&"%' " next For i=1 to Ubound(vector) strsql=strsql&" OR autor LIKE '%"&vector(i)&"%' " Next SET objRS=objConn.Execute(strsql) 'linea en la que me tira el error 'objRS.open strsql, objconn dim encontrados encontrados = 0 %><table> <table bgcolor="<%=colorcelda%>"ALIGN= CENTER WIDTH = 800 > <tr><td FONT STYLE= VERDANA, ARIAL SIZE=2 align = <%=alineado%>>Autor: <%=objRS("AUTOR")%></FONT></td></tr> <tr><td FONT STYLE= VERDANA, ARIAL SIZE=2 align = <%=alineado%>>Título: <%=objRS("TITULO")%></FONT></td></tr> <%
__________________ Juan Pablo |
| ||||
te da error en esa linea porque no puedes usar el simbolo % junto con el operador =. solo funciona para la clausula like. like otra cosa...cuando recorras tu vector hazlo de esta forma for i=lbound(vector) to ubound(vector) sigun veo lo estas recorriendo mal for i =1 to lbound(vector) esto se traduce a for i =1 to 0 ya que el lbound es el limite inferior de tu vector y este comienza en 0. |
| |||
Parece que vamos a pasar el record de cantidad de páginas.. je.je ahora no me da el error, pero volví a la pantalla blanca, solo que ahora me muestra ej: si pongo cacho/juan/armando muestra: 2cacho de todas maneras, no llega nunca a buscar en la BD. no me abandones baka.., no debo estar muy lejos. gracias. ah!! : Por las dudas Busqueda=Replace(Request.Form("busqueda"),"'","''" ) vector = split(Busqueda,"/") response.write ubound(vector) for i =lbound(vector) to ubound(vector) response.write vector(i) &"<br>" response.end 'strsql="SELECT * FROM publicaciones WHERE autor like '%"&vector(0)&"%' " next SET objRS=objConn.Execute(strsql) 'objRS.open strsql, objconn
__________________ Juan Pablo |
| |||
gracias maistro!!! funciona!!!! yo sabía que tan lejos no andaba... lo que me preocupa es el tema del record, a ver si con esto lo logramos: Me busca solo las dos primeras palablas juan/cacho/pirulo a pirulo no lo encuentra. Saludos. de paso: Como anda esa hermosa ciudad?
__________________ Juan Pablo |
| ||||
hazle un response.write a la variable busqueda y verifica que te traiga los tres nombres si te trae tres nombre...el vector seria de largo 3 (v(0),v(1),v(2))... haz tambien un response.write i y fijate cuantas pasadas hace por el for (deberian ser tres)..de paso hace un response.write a vector(i). de esta ciudad mucho de bonita no tiene...puro smog..autos..y gente... arranco cada vez ke puedo. |
| |||
Es jodido arrancar para algun lado que no tenga esas cosas... por lo menos aca en B.A. no quedan muchos. Volviendo, cometí un error al decirte que encontraba solamente las dos primeras, ya que la segunda palabra estaba en otro record que contenía también la primera. Osea que me muestra solamente la primer palabra. por lo que me pediste: para cacho/juan/armando. el primer vector me muestra 2 el segundo :cacho juan armando Aun tengo fe en el record de páginas.
__________________ Juan Pablo |
| ||||
bueno, entonces ta todo mal con lo que me dices, lo que no logro entender es como el split te almacena en el primer registro un 2 y en el siguiente todos los nombre... lo que deberia hacer es guardarte como elemento separados serian los nombre. si tienes esto cacho/juan/armando en tu variable busqueda tu vector deberia quedar vector(0)=cacho vector(1)=juan vector(2)=armando estas seguro que no hace eso hazle un response al vector y ve que te forma
Código:
despues haz un response.write al strsql que forma al final con la union de todos los nombres. for i =0 to ubound(vector) response.write vector(i) &"<br>" next response.end |
| |||
mirá: cuando tipeo el código que me diste, me dice cacho armando luego le puse un response.write strsql y saqué el response.end y me dá lo siguiente, que creo que puede darnos el error, mira el sql: cacho armando cacho armando SELECT * FROM PUBLICACIONES WHERE autor like '%cacho%' OR titulo like '%cacho%' or publicacion like '%cacho%' or fuente like '%cacho%' por alguna razon no toma el vector 1 y los siguientes
__________________ Juan Pablo |
| |||
hice esto: for i =lbound(vector) to ubound(vector) strsql="SELECT * FROM PUBLICACIONES WHERE autor like '%"&vector(0)&"%' OR titulo like '%"&vector(0)&"%' or publicacion like '%"&vector(0)&"%' or fuente like '%"&vector(0)&"%'" response.write "probando las veces que pasa <br>" next imprimió esto: probando las veces que pasa probando las veces que pasa osea que está pasando 2 veces, y como la busqueda que le mandé es cacho/juan, esta pasando bien, pero el tema es el sql ¿por qué no reconoce vector(1)?
__________________ Juan Pablo |
| ||||
debe haber algo raro... haber copia esto y veamos que sale. mezclando pesao..
Código:
strsql="SELECT * FROM publicaciones WHERE autor like '%"&vector(0)&"%' " for i =1 to ubound(vector) strsql=strsql & " OR autor LIKE '%"&vector(i)&"%' " next response.write strsql response.end |
| ||||
estas imprimiendo siempre el elemento 0 del vectore...fijate bien strsql="SELECT * FROM PUBLICACIONES WHERE autor like '%"&vector(0)&"%' OR titulo like '%"&vector(0)&"%' or publicacion like '%"&vector(0)&"%' or fuente like '%"&vector(0)&"%'" haz lo que te postee y cuenta ke onda. ufff...anda juntando plata pa' ke kuando vaya a B.A. me sakis a carretear y conocer unas pibas por ahi |
| |||
No problem... cuando quieras... mira esto.... what's up? esto es lo que me dió: SELECT * FROM publicaciones WHERE autor like '%cacho%' OR autor LIKE '%cacho%' OR autor LIKE '%armando%'
__________________ Juan Pablo |
| |||
aura parece querer... SELECT * FROM publicaciones WHERE autor like '%cacho%' OR autor LIKE '%armando%' pero como armaria mi sql? Tenés pensado venir a B.A?
__________________ Juan Pablo |
| ||||
no se...capaz ke me arranque algun fin de semana...el cambio esta super conveniente por esos lados.. oye tarlipes.. mira no he mirado tu sql y lo que quieres hacer asi que ke te parece si me lo explicas porke como veo quieres preguntar por otros campos de tu tabla.. ahora que esta solucionado el tema el split veamos la formacion del sql... pero entendiste tus errores cierto...es la idea?. Pero mañana es otro dia...postealo y te sigo ayudando tomorrow. 10/4. |
| |||
avisame si venís... a esta altura ya te considero un amigo. ahi va: strsql="SELECT * FROM PUBLICACIONES WHERE autor like '%"&vector(0)&"%' OR titulo like '%"&vector(0)&"%' or publicacion like '%"&vector(0)&"%' or fuente like '%"&vector(0)&"%'" que deberia poner STRSQL= strsql & " OR autor LIKE...... ? saludos y ta' mañana
__________________ Juan Pablo |
| ||||
ke tal. segun veo lo que quieres hacer es preguntar por varios campos de tu tabla y ademas varias veces, segun lo que tenga el vector?... hhmmm...nunca he repetido un campo mas de una vez a menos que use el operador IN where campo IN (a,b,c) no se si será factible con el operador like. haz la prueba ejecutando algo asi.
Código:
strsql="SELECT * FROM PUBLICACIONES WHERE autor like '%"&vector(0)&"%' OR titulo like '%"&vector(0)&"%' OR publicacion like '%"&vector(0)&"%' OR fuente like '%"&vector(0)&"%' OR autor like '%"&vector(1)&"%' OR titulo like '%"&vector(1)&"%' OR publicacion like '%"&vector(1)&"%' OR fuente like '%"&vector(1)&"%'" |
| |||
Hola man... ya lo solucioné así mira. Busqueda=Replace(Request.Form("busqueda"),"'","''" ) vector = split(Busqueda,"/") strsql="SELECT * FROM publicaciones WHERE autor like '%"&vector(0)&"%' OR titulo LIKE '%"&vector(0)&"%' OR publicacion LIKE '%"&vector(0)&"%' OR fuente LIKE '%"&vector(0)&"%' " for i =1 to ubound(vector) strsql=strsql & " OR autor LIKE '%"&vector(i)&"%' OR titulo LIKE '%"&vector(i)&"%' OR publicacion LIKE '%"&vector(i)&"%' OR fuente LIKE '%"&vector(i)&"%' " next 'response.write strsql SET objRS=objConn.Execute(strsql) anda perfecto, hasta 3 palabras busca ej. juan/cacho/armando si pongo mas de tres, me muestra toda la BD, pero demasiado. Gracias por tu tiempo y paciencia... y avisá si venis a BA saludos
__________________ Juan Pablo |