Foros del Web » Programando para Internet » ASP Clásico »

Me pasa algo raro al regoger valores en un array

Estas en el tema de Me pasa algo raro al regoger valores en un array en el foro de ASP Clásico en Foros del Web. Veamos tango esto Código PHP: set RSconsulta  =  server . createobject ( "adodb.recordset" ) SQLconsulta  =  "SELECT * FROM email" RSconsulta . Open SQLconsulta ,  Conn Do While  Not RSconsulta . EOF ...
  #1 (permalink)  
Antiguo 22/04/2004, 05:31
 
Fecha de Ingreso: febrero-2002
Ubicación: Navarra
Mensajes: 701
Antigüedad: 23 años, 3 meses
Puntos: 2
Me pasa algo raro al regoger valores en un array

Veamos tango esto

Código PHP:

set RSconsulta 
server.createobject("adodb.recordset")
SQLconsulta "SELECT * FROM email"
RSconsulta.Open SQLconsultaConn

Do While Not RSconsulta.EOF

mailto 
=  ""
mailto RSconsulta("nombre")&","mailto
response
.write mailto

RSconsulta
.MoveNext
Loop

mailto 
split(trim(mailto),",")

response.write "<br>"&UBound(mailto)&"<br>"

set rsVac server.createobject("adodb.recordset")

SQLconsulta2 "SELECT * FROM arquitectura WHERE "

For 0 To UBound(mailto)

    If 
<> UBound(mailtothen
    SQLconsulta2 
SQLconsulta2 " Right(email,Len(email) - InStr(email,'@')) <> '" mailto(i) & "' and "
    
Else
    
SQLconsulta2 SQLconsulta2 " Right(email,Len(email) - InStr(email,'@')) <> '" mailto(i) & "'"
    
End if

Next 
Vale tengo este código que me recoge todos los valores de la 1 tabla en un array y lo consulta con la segunta tabla, bien, el echo es que haciendo esta línea de esta forma

mailto = RSconsulta("nombre")&","& mailto

me dice que solo encuentra 1 registro

pero si copio y pego lo que me sale en pantalla

arrakis.es,yahoo.com,yahoo.es,teleline.es,terra.es ,hotmail.com,iespana.es,telefonica.net,ozu.es,ctv. es,arrakis.es,ono.com,redestb.es,teleline.es,futur net.es,telecable.es,

entonces me sale bien y me dice que hay 16 registros y así me hace bien la consulta y todo lo demás, pero porque no me sal ede la primera forma

Un saludo
__________________
asp, php, .net, adaptandose a las necesidades
  #2 (permalink)  
Antiguo 22/04/2004, 05:54
Avatar de markshock  
Fecha de Ingreso: abril-2004
Ubicación: Allí, al fondo a la izqui
Mensajes: 316
Antigüedad: 21 años
Puntos: 0
Vamos a ver apañero,

te muestro la forma, a mi parecer mas sensata de hacer lo que quieres hacer:

yo dispongo de un include llamado obj_array.asp que tiene el siguiente código:

<%
Dim resultado(1000)
Dim resultado1(1000)
Dim resultado2(1000)

Function parte(cadena,nameArray)
Dim numpala
numpala=0
For i = 1 To len(cadena)
if Mid(cadena,i,2)=", " then
i=i+1
numpala=numpala+1
nameArray(numpala) =""
else
nameArray(numpala) = nameArray(numpala)+ Mid(cadena,i,1)
end if
Next
End Function

Function buscarLlenos(nomArray)
x=0
For x=0 to Ubound(nomArray)
if not isEmpty(nomArray(x)) Then
temp=temp+1
end if
Next
buscarLlenos=temp-1
End Function

Function verArray(nomArray,separador)
x = 0
temp = ""
For x=0 to buscarLlenos(nomArray)
if not isEmpty(nomArray(x)) Then
temp = temp & nomArray(x) & separador
end if
Next

if (temp<>"") then
temp = left(temp,len(temp)-1)
end if
verArray = temp
End Function
%>
paso a comentarlo.

-hay 3 arrays predefinidas.

funcion parte(cadena,nameArray) : esta función, genera arrays a partir de cadenas de texto con los valores separados por ", " ok?

En este caso, como las funciones predefinidas se llaman resultado, resultado1, resultado2 la usariamos de la siguiente forma:

precios = "1, 2, 3, 4, 5, 6"
Call parte(precios,resultado)

ok?

Esto lo uso para partir las cenadas y generar arrays.

A ti lo que te interesa es recoger los datos de un array que te has creado.


te recomiendo que a partir del primer select, te montes una cadena de texto con los valores separados por ", "

direcciones = "terra.es, yahoo.com, google.es" etc...

y usando la funcion buscarLlenos(nombreArray)

Haces el:

For x=1 to buscarLlenos(nombreArray)
sql = "select * from tabla where url='"&direcciones(x)&"'"
....................
....................
.........................
next

a ver que tal te va esto, espero que te sirva el peaso de include que te he pasado, eso soluciona i agiliza mucho el trabajar con arrays.

saludos
__________________
Señoooraaaa!! Que camisetas!!!

"Hay 10 tipos de personas, las que piensan en binario y las que no"
_________________________________
  #3 (permalink)  
Antiguo 22/04/2004, 07:37
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 23 años, 4 meses
Puntos: 98
No revisé bien tu código, pero el problema que mencionas está aquí:

Do While Not RSconsulta.EOF

mailto = ""
mailto = RSconsulta("nombre")&","& mailto
response.write mailto

RSconsulta.MoveNext
Loop

Cada vez que da vuelta el ciclo, mailto vale "" y después le asignas el valor del campo nombre en el recordset + "," y lo imprimes, por eso cuando sale del ciclo, crees que efectivamente tiene todos los valores, pero no es cierto, solo que los imprimiste de uno por uno....

mailto = ""
Do While Not RSconsulta.EOF
mailto = mailto & RSconsulta("nombre") & ","
RSconsulta.MoveNext
Loop
response.write mailto

Salu2,
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #4 (permalink)  
Antiguo 22/04/2004, 08:12
 
Fecha de Ingreso: febrero-2002
Ubicación: Navarra
Mensajes: 701
Antigüedad: 23 años, 3 meses
Puntos: 2
Si es cierto u_goldman,

Código PHP:
Do While Not RSconsulta.EOF

mailto 
=  ""
mailto RSconsulta("nombre")&","mailto
response
.write mailto

RSconsulta
.MoveNext
Loop 
la verdad es que me e armado un poco de lio recogiendo todos los valores de la base de datos dentro de un array, como podría hacerlo?

Gracias markshock, voy a revisar el código haber como es de esta forma que comentas.

Se me olvidada, los datos que tengo en la base email son de este tipo:

arrakis.es
yahoo.com
yahoo.es
teleline.es

Y la otra Base son direcciones de email completas

[email protected]
haven2arrakis.com

Un saludo
__________________
asp, php, .net, adaptandose a las necesidades

Última edición por haven; 22/04/2004 a las 08:15
  #5 (permalink)  
Antiguo 22/04/2004, 08:40
 
Fecha de Ingreso: febrero-2002
Ubicación: Navarra
Mensajes: 701
Antigüedad: 23 años, 3 meses
Puntos: 2
ya esta solucionado solo a sido quitar la linea de mailto = ""

Do While Not RSconsulta.EOF

mailto = RSconsulta("nombre")&","& mailto
response.write mailto

RSconsulta.MoveNext
Loop

Lo raro es que esta mañana lo tenia así y no funcionaba, sera el ordenador que esta un poco tonto, ya, jeje, necesita formateo, jeje

Un saludo y gracias
__________________
asp, php, .net, adaptandose a las necesidades
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:30.