Ver Mensaje Individual
  #1 (permalink)  
Antiguo 19/01/2003, 19:34
hugorei
(Desactivado)
 
Fecha de Ingreso: agosto-2002
Mensajes: 1.458
Antigüedad: 22 años, 9 meses
Puntos: 0
sistema de noticias para mejorarlo apso el codigo

la base de datos campos

id autonumerico
categoria numerico
titulo texto
copete memo
noticia memo
imagen texto (url de la imagen)


formulario :


<p>Noticia:<br>
<textarea onKeyDown="limite(this,200)" onKeyUp="limite(this,200)" name="noticia" rows=15 cols=45 ></textarea>
<input name="cont" type="text" size="3" value="200" readonly>
</p>
<p>Ingrese url de la imagen previa</p>
<p>
<input type="text" name="imagen">
</p>
<p>Ingrese url de la ima<form method="POST" name="reduce" action="agrega_noticia.asp">
<p>Categoria:</p>
<p><input type="text" name="Categoria" size="40"> </p>
<p>Titulo:<br>
<input type="text" name="titulo" size="40">
</p>
<p>Copete:<br>
<input type="text" name="copete" size="40">
</p>gen de la noticia</p>
<p>
<input type="text" name="imagen2">
</p>
<p><input type="submit" value="Ingresar noticia" name="enviar"></p></form>
</body>
</html>


desde este formulario se envia los datos a agrega_noticia que lo que hace es ingresar los datos a la base de datos


En el ejemplo de agrega noticia esta hecho con dos campos de imagenes despues lo tuve que modificar ya que no conseguia que me muestre las dos imagenes , ya que la idea original era que me muestre una imagen pequeña y la que va la noticia es otra imagen llamada imagen2 mas grande pero como no funciono lo saque y en las dos me muestra una sola imagen del mismo tamaño



agrega_noticia :

<%
Response.Buffer = true
dim cnn,rst
' Creamos la conexión a la base de datos sin DSN
set cnn = Server.CreateObject("ADODB.Connection")
set rst = Server.CreateObject("ADODB.RecordSet")
cnn.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & _
Server.MapPath("noticias.mdb"))
sqltext = "SELECT * FROM noticias"
rst.Open sqltext,cnn,3,3

'Recogemos los datos y validamos que no haya ningun campo vacio
dim titulo, copete, noticia, imagen, imagen2
Categoria=Request.Form("Categoria")
titulo = Request.Form("titulo")
copete = Request.Form("copete")
noticia = Request.Form("noticia")
imagen = Request.Form("imagen")
imagen2 = Request.Form("imagen2")
if copete = "" or categoria ="" or titulo ="" then
error = "Debe completar todos los datos."
Response.Write error
Response.End
end if

'Si está todo correcto, procedemos a ingresar los datos a la base de datos

rst.AddNew
rst("Categoria")= Categoria
rst("titulo") = titulo
rst("copete") = copete
rst("noticia") = noticia
rst("imagen") = imagen
rst("imagen2") = imagen2 * no tener en cuenta ya que no funciono
rst.update

'Terminamos e imprimimos un mensaje
Response.Write "La noticia se ha ingresado con exito"
%>
<html>

<head>
<title>Página nueva </title>
</head>

<body>
</body>
</html>

Luego viene el listado previo a la noticia en si que muestra una pequeña imagen en una tabla separa a la noticia es decir una fila y dos columnas


listado :


Set oConn = Server.CreateObject ("ADODB.Connection")
Set RS = Server.CreateObject ("ADODB.RecordSet")
oConn.Open "Driver={Microsoft Access Driver (*.mdb)}; " & "Dbq=" & Server.MapPath("Noticias.mdb")

'Conectamos a la conexion a la base de datos.
sql ="SELECT TOP 5 * FROM Noticias WHERE Categoria=1 ORDER BY id DESC"
'Abrimos la tabla pidiendo todos sus registros.
RS.Open sql, oConn %>
<table width="488" border="1,00" bordercolor="#999999" bgcolor="#FFFFFF">
<%Do While not RS.EOF %>
<tr>
<td width="88" height="23" valign="middle"> <div align="center">
<%Response.Write "<IMG SRC="""&RS("imagen")&""">" %>
</div></td>
<td width="384"><div align="justify">
<p> <font color="#000000" size="2" face="Arial, Helvetica, sans-serif">
<strong>
<%Response.Write "<a href='noticia.asp?id="& RS.Fields("id") &"'>"&RS.Fields("titulo")&"</a></b><br><font color=""#696969"">"& RS.Fields("copete") &" "
Response.Write "<P>"
%>
</strong> </font> </p>
</div></td>
</tr>
<%RS.MoveNext
Loop
'Cerramos y eliminamos todo.
RS.Close
oConn.Close
Set RS = Nothing
Set oConn = Nothing
%>


y por ultimo la noticia en si haciendo click en el titulo del listado anterior lo deriva a la noticia propiamente dicha :


<%
dim oConn, RS
'Creamos los objectos a usar.
Set oConn = Server.CreateObject ("ADODB.Connection")
Set RS = Server.CreateObject ("ADODB.RecordSet")
oConn.Open "Driver={Microsoft Access Driver (*.mdb)}; " & "Dbq=" & Server.MapPath("Noticias.mdb")
'Conectamos a la conexion a la base de datos.
sql = "SELECT * FROM Noticias"
'Abrimos la tabla pidiendo todos sus registros.
RS.Open sql, oConn

'Mostramos el nombre del articulo.
'Y la siguiente linea muestra la imagen.
Response.Write "<IMG SRC="""&RS("imagen")&""">"
Response.Write "<BR>"
RS.MoveNext

'Cerramos y eliminamos todo.
RS.Close
oConn.Close
Set RS = Nothing
Set oConn = Nothing
%>
</font> </div>
<div align="center">
</div></tr>
</table>
<html>
</div>
<body>
<p align="left">
<%
Set con = Server.CreateObject("ADODB.Connection")
Con.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & _
Server.MapPath("noticias.mdb"))
sql = "SELECT * FROM Noticias WHERE id=" & Request.QueryString("id") & ""

'Ejecuta un sentencia SQL de consulta
'Recorre todas las filas del resultado
set result = Con.Execute(sql)
%>
</p>
<%Left cadena, cantidad%>
<p align="center"><font face="Arial" size="5" color="#0080C0"><%=result("titulo")%></font></p>
<p align="justify"><font color="#FF0000" size="3" face="Arial"><strong><%=result("copete")%></strong></font></p>
<p align="justify"><font face="Arial" size="3"><%=Left(result("noticia"),1550)%>
<%
noticia = result("noticia")
noticia = Replace(noticia, chr(10), "<br>")
Response.Write(noticia)
%>


PARA MEJORAR DE ESTE SISTEMA :

El sistema en si anda pero para mejorar tengo que lograr primero que la imagen de la noticia sea mas grande que la de la presentacion inicial, y que cuando la pagina supere tantos caracteres me lo pagine y me lo mande a otra pagina

Otra manera de hacer esto sin paginar seria -: si se fijan tengo un contador de caracteres en mi textare , bueno cuando pase tantos caracteres me permita pasar un link y pueda seguir cargando la continuacion de esta noticia en otra pagina yo hasta ahora no le encuentro solucion si alguien se toma el trabajo de verlo quizas me pueda servir tanto a mi como a otros usuarios de este foro.


Muchas gracias