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

Problema Interesante

Estas en el tema de Problema Interesante en el foro de ASP Clásico en Foros del Web. Sucede que ando haciendo un sistema de noticias relacionadas, esto es mostrar una noticia de la base de datos pero en un apartado poner los ...
  #1 (permalink)  
Antiguo 21/12/2002, 06:30
Avatar de garcef  
Fecha de Ingreso: agosto-2001
Ubicación: Querétaro, México
Mensajes: 289
Antigüedad: 23 años, 8 meses
Puntos: 0
Pregunta Problema Interesante

Sucede que ando haciendo un sistema de noticias relacionadas, esto es mostrar una noticia de la base de datos pero en un apartado poner los enlaces con temas relacionados

Para ello para mostrar la noticia tengo esto:

en la cabeza antes de <html>

<%
Set con = Server.CreateObject("ADODB.Connection")
Con.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & _
Server.MapPath("misnoticias.mdb"))
sql = "SELECT * FROM Mexico WHERE id=" & Request.QueryString("id") & ""

'Ejecuta un sentencia SQL de consulta
'Recorre todas las filas del resultado
set result = Con.Execute(sql)
%>

......

<body>

<p><%=result("agencia")%><br>
<%=result("fecha")%><br>
<p><%=result("noticia")%></p>


Ahora bien, en la misma base de datos tengo una comlumna con el nombre "relacionadas" donde introduzco una palabra clave por cada noticia (Ejemplo: Irak, todas las noticias sobre el tema se les coloca la palabra clave Irak)

Al solicitarla necesito que el ASP, muestre los titulos de la noticia de todos los registros con la palabra Irak

Para ello hice una conexión así


<%
Dim conexion, registros, basedatos
basedatos = Server.MapPath("noticias.mdb")
Set conexion = Server.CreateObject("ADODB.Connection")
conexion.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & basedatos & ";"
Set registros = conexion.Execute("SELECT relacion FROM Mexico Where Id =" & Request.QueryString("id") & "")
Do While Not registros.EOF
%>


<table> <%=registros.Fields("relacion").Value %></table>



<%
registros.MoveNext
Loop
registros.Close
Set registros = Nothing
conexion.Close
Set conexion = Nothing
%>


Pero solo me muestra la palabra del registro "Irak" en lugar de mostrarme los titulos de todos los registros que digan Irak


Lo intente así

<%
Dim conexion, registros, basedatos
basedatos = Server.MapPath("noticias.mdb")
Set conexion = Server.CreateObject("ADODB.Connection")
conexion.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & basedatos & ";"
Set registros = conexion.Execute("SELECT relacion FROM Mexico Where <%=result("relacion")%>
Do While Not registros.EOF
%>


pero me da un error en la zona del result

de donde sale el result? de la primera conexion que genera la noticia

Espero ser claro
Espero que me entiendan
Espero su ayuda

Mil Gracias
__________________
garcef
Facebook: url]https://www.facebook.com/memelandiax[/url]
Twitter: @Memelandiax Vine:memelandiax Instagram: memelandiax Youtube: memelandiax
  #2 (permalink)  
Antiguo 21/12/2002, 19:25
Avatar de g_susdaniel  
Fecha de Ingreso: mayo-2001
Ubicación: Frente al Monitor :þ
Mensajes: 995
Antigüedad: 24 años
Puntos: 0
Recomendacion 1:

Esto colocalo en un archivo por ejemplo comun.asp :

Dim conexion, registros, basedatos
basedatos = Server.MapPath("noticias.mdb")
Set conexion = Server.CreateObject("ADODB.Connection")
conexion.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & basedatos & ";"


Luego le haces un include en las paginas donde necesites la conexion, ok luego en la primera conexion ke te genera la noticia guarda la relacion en una variable

mi_variable = <%=result("relacion")%>

sí donde la pides es la misma pagina, y luego solo necesitas modificar tu SQL

SQL = SELECT relacion FROM Mexico Where relacion

SQL = "Select * From productos WHERE relacion LIKE '%" & mi_variable & "%'"

Set registros = conexion.Execute (SQL)


Trata de hacerlo así, espero te sirva. si me equivoqué en algo disculpa, me acabo de despertar y no pienso

Salu2
__________________
No, no no... no hay firma...
  #3 (permalink)  
Antiguo 22/12/2002, 13:47
Avatar de CHuLoSoY  
Fecha de Ingreso: febrero-2002
Ubicación: Ribeira (Galicia)
Mensajes: 1.900
Antigüedad: 23 años, 3 meses
Puntos: 29
<%
Dim conexion, registros, basedatos
basedatos = Server.MapPath("noticias.mdb")
Set conexion = Server.CreateObject("ADODB.Connection")
conexion.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & basedatos & ";"
Set registros = conexion.Execute("SELECT relacion FROM Mexico Where Id =" & Request.QueryString("id") & "")
Do While Not registros.EOF
%>

<table> <%=registros.Fields("relacion").Value %></table>

eso es lo que tienes , y lo que hasces es mostrar el campo relacion, y normal que te muestre sólo la palabra de relación, prueba así:

<%
Dim conexion, registros, basedatos
basedatos = Server.MapPath("noticias.mdb")
Set conexion = Server.CreateObject("ADODB.Connection")
conexion.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & basedatos & ";"
Set registros = conexion.Execute("SELECT * FROM Mexico Where Id =" & Request.QueryString("id") & "")
Do While Not registros.EOF
%>

<table> <%=registros.Fields("titulo").Value %></table>
__________________
ESQUIO Dominios y Hosting
Las mejores características con los mejores precios.
  #4 (permalink)  
Antiguo 22/12/2002, 23:42
Avatar de garcef  
Fecha de Ingreso: agosto-2001
Ubicación: Querétaro, México
Mensajes: 289
Antigüedad: 23 años, 8 meses
Puntos: 0
Gracias por sus comentarios pero nada

Hice lo de Daniel, pero sucede que tuve algunos errorcillos ya intente lo que dice chulo soy pero sucede que me mostraba un error



Ahora hice lo siguiente, pero sucede que solo me muestra un registro, el correspondiente al que muestra la noticia.

No supe como pude poner mi_variable=<%xxxx%> porque me indicaba que habia un error de redacción

Ahi esta la página


<%
Set con = Server.CreateObject("ADODB.Connection")
Con.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & _
Server.MapPath("misnoticias.mdb"))
sql = "SELECT * FROM Mexico WHERE id=" & Request.QueryString("id") & ""

'Ejecuta un sentencia SQL de consulta
'Recorre todas las filas del resultado
set result = Con.Execute(sql)
%>
<html>
<head>
<title><%=result("titulo")%> </title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="GENERATOR" content="Microsoft FrontPage 3.0">
</head>
<body>
<table border="1" width="100%" height="266">
<tr>
<td width="18%" valign="top" height="260"></td>
<td width="60%" valign="top" height="260"><table border="1" width="100%">
<tr>
<td width="100%"><%=result("titulo")%> <div align="left"><table
border="1" width="50%" align="right">
<tr>
<td width="100%">Relacionadas</td>
</tr>
<tr>
<td width="100%"><%
Dim conexion, registros, basedatos
basedatos = Server.MapPath("misnoticias.mdb")
Set conexion = Server.CreateObject("ADODB.Connection")
conexion.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & basedatos & ";"
Set registros = conexion.Execute("SELECT relacion FROM Mexico Where titulo LIKE '%" & mi_variable & "%'")

Do While Not registros.EOF
mi_variable = titulo
Set registros = conexion.Execute (SQL)

Response.Write "<br><b><font face=Verdana size=1><a href=noticia2.asp?id=" &result.Fields("id") & ">"&result.Fields("titulo")&"</a></b><b><br><font color=""009999""><b></font></font>"

registros.MoveNext
Loop
registros.Close
Set registros = Nothing
conexion.Close
Set conexion = Nothing
%>
<p></td>
</tr>
</table>
</div><p><%=result("copete")%> <br>
<%=result("fecha")%> <br>
<p><%=result("noticia")%> </p></p>
<p>&nbsp;</td>
</tr>
</table>
</td>
<td width="22%" valign="top" height="260"></td>
</tr>
</table>
</body>
</html>

el código en Azul es el que proporiona la noticia

El código rojo es el de las relacionadas y del problema
__________________
garcef
Facebook: url]https://www.facebook.com/memelandiax[/url]
Twitter: @Memelandiax Vine:memelandiax Instagram: memelandiax Youtube: memelandiax
  #5 (permalink)  
Antiguo 23/12/2002, 10:41
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 24 años, 2 meses
Puntos: 535
Modificá esta línea:

Set registros = conexion.Execute("SELECT relacion FROM Mexico Where titulo LIKE '%" & result("relacionadas") & "%'")


y eliminá estas dos:

mi_variable = titulo
Set registros = conexion.Execute (SQL)



creo que con eso funcionaría
  #6 (permalink)  
Antiguo 24/12/2002, 00:28
Avatar de garcef  
Fecha de Ingreso: agosto-2001
Ubicación: Querétaro, México
Mensajes: 289
Antigüedad: 23 años, 8 meses
Puntos: 0
Me hace una repeticion

Me repite tres veces la misma noticia que es la que muestra y no busca las otras noticias con la misma clave
__________________
garcef
Facebook: url]https://www.facebook.com/memelandiax[/url]
Twitter: @Memelandiax Vine:memelandiax Instagram: memelandiax Youtube: memelandiax
  #7 (permalink)  
Antiguo 24/12/2002, 05:29
Avatar de garcef  
Fecha de Ingreso: agosto-2001
Ubicación: Querétaro, México
Mensajes: 289
Antigüedad: 23 años, 8 meses
Puntos: 0
SQL en Access

Hice una consulta en Access donde me mostrara por ejemplo en la tabla Deportes todos los registros que coincidieran con la palabra "Abreu"

Entonces me mostró la tabla de consulta con las noticias con la palabra Clave "Abreu" y los títulos


y esta es la sentencia SQL, el problema es que no encuentro como acomodarla

SELECT Deportes.relacion, Deportes.titulo
FROM Deportes
WHERE (((Deportes.relacion)="Abreu"))
ORDER BY Deportes.relacion;


Porque el objetivo es que los resultados de la tabla relacion no aparezcan y solo se muestren los de titulo

__________________
garcef
Facebook: url]https://www.facebook.com/memelandiax[/url]
Twitter: @Memelandiax Vine:memelandiax Instagram: memelandiax Youtube: memelandiax
  #8 (permalink)  
Antiguo 24/12/2002, 06:03
Avatar de garcef  
Fecha de Ingreso: agosto-2001
Ubicación: Querétaro, México
Mensajes: 289
Antigüedad: 23 años, 8 meses
Puntos: 0
Puffffffff!!!!

Logre un gran avance casi esta hecho hices esto en la maldita conexion


<%
Dim conexion, registros, basedatos
basedatos = Server.MapPath("misnoticias.mdb")
Set conexion = Server.CreateObject("ADODB.Connection")
conexion.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & basedatos & ";"
Set registros = conexion.Execute("SELECT id,relacion,titulo FROM Mexico WHERE ((Mexico.relacion='SLP ')) ORDER BY id,relacion ASC;")
Do While Not registros.EOF
%>

<li><b><a href="pruebita2.asp?Id=<%=registros.Fields("id").V alue %>"><%=registros.Fields("titulo").Value %></a></b></li>

<%
registros.MoveNext
Loop
registros.Close
Set registros = Nothing
conexion.Close
Set conexion = Nothing
%>

Logre extraer los resultados y hacer la conexion para el enlace ahora solo existe un problema

SLP '))

¿Cómo demonios hago dinámico el SLP ,

Es decir que cuando ingrese a la pagina por ejemplo de "Choca el Loco Abreu"

Se muestren las de Abreu y que cuando entre a "No podemos detener el TLC"

Muestre todas las de la palabra clave TLC

Si me di a entender?
porque como que hasta yo me hice pelotas
es decir SLP es la palabra clave entonces en la base en la lista de relacionadas, así por ejemplo cada noticia tiene un palabra clave "SLP, Trevi, Fox, Venezuela" etc.


:cantar: Ufff!!!! lo logre pero ahora solo falta eso

Gracias de Nueva cuenta a lo que uno aprende en ForosdelWeb
__________________
garcef
Facebook: url]https://www.facebook.com/memelandiax[/url]
Twitter: @Memelandiax Vine:memelandiax Instagram: memelandiax Youtube: memelandiax

Última edición por garcef; 24/12/2002 a las 06:11
  #9 (permalink)  
Antiguo 24/12/2002, 06:31
Avatar de garcef  
Fecha de Ingreso: agosto-2001
Ubicación: Querétaro, México
Mensajes: 289
Antigüedad: 23 años, 8 meses
Puntos: 0
¡¡¡¡ YA !!!! ¡¡¡YA LO LOGRE!!!!

Es increible lo que se puede hacer en una madrugada y me llega como regalo de navidad!!!!!!!


Ahí va el código para quien le sirva


<%
Dim conexion, registros, basedatos
basedatos = Server.MapPath("noticias.mdb")
Set conexion = Server.CreateObject("ADODB.Connection")
conexion.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & basedatos & ";"
Set registros = conexion.Execute("SELECT id,relacion,titulo FROM Mexico WHERE ((Mexico.relacion='" & result("relacion") & "')) ORDER BY id,relacion ASC;")
Do While Not registros.EOF
%>

<li><b><a href="pruebita2.asp?Id=<%=registros.Fields("id").V alue %>"><%=registros.Fields("titulo").Value %></a></b></li>

<%
registros.MoveNext
Loop
registros.Close
Set registros = Nothing
conexion.Close
Set conexion = Nothing
%>



Este código a mí me va a traer muchas cosas buenas, y gracias a los que colaboraron en el mensaje gracias y ojalá que le sirva a alguien más

¡¡¡¡¡¡¡ LO LOGREEEEEEEEEE !!!!!!

¡¡!!!!! FELIZ NAVIDAD A TODOS !!!!!!!!

__________________
garcef
Facebook: url]https://www.facebook.com/memelandiax[/url]
Twitter: @Memelandiax Vine:memelandiax Instagram: memelandiax Youtube: memelandiax
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

SíEste tema le ha gustado a 2 personas




La zona horaria es GMT -6. Ahora son las 05:53.