Sistema de noticias en ASP

Lo que vamos a hacer, es básicamente un sistema de noticias para un sitio web, programado en ASP y utilizando bases de datos Access.

Archivos a utilizar
noticias.mdb: la base de datos
formulario.htm: el formulario en donde ingresaremos los datos de la noticia
agrega_noticia.asp: el encargado de procesar el formulario
listado.asp: para listar todas las noticias
noticia.asp: para ver la noticia

noticias.mdb

Dentro de este archivo creamos una nueva Tabla llamada Noticias con los siguientes campos: id (autonumérico), titulo (texto), copete (memo) y noticia (memo):

formulario.htm

El formulario es una simple página html, que permite ingresar los datos Título, Copete y Noticia, e ingresarlos a la base de datos.

<form method="POST" action="agrega_noticia.asp">
<p>Ttiulo:<br>
<input type="text" name="titulo" size="40"></p>
<p>Copete:<br>
<input type="text" name="copete" size="40"></p>
<p>Noticia:<br>
<textarea rows="4" name="noticia" cols="30"></textarea></p>
<p><input type="submit" value="Ingresar noticia" name="enviar"></p>
</form>

agrega_noticia.asp

En el formulario notamos que el action es igual a agrega_noticia.asp. Gracias a este archivo podemos procesar los datos ingresados en el formulario y volcarlos dentro de la base de datos

<%
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 "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & 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
titulo = Request.Form("titulo")
copete = Request.Form("copete")
noticia = Request.Form("noticia")

if copete = "" or titulo ="" or noticia ="" 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("titulo") = titulo
rst("copete") = copete
rst("noticia") = noticia
rst.update

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

listado.asp

Lo que hará este archivo es listar las noticias, ordenadas por el ID Desc (de último a primero). Se podría realizar una paginación, peor eso lo veremos en un próximo artículo. El código del listado quedaría así:

<html>
<head>
<title>Listado de noticias</title>
</head>
<body>
<%
‘Abre la conexion con la base de datos a traves de una conexion ODBC
Set con = Server.CreateObject("ADODB.Connection")
con.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("noticias.mdb")

‘Ejecuta un sentencia SQL de consulta
sql = "SELECT * FROM Noticias ORDER BY id DESC"
Set result = con.Execute(sql)
‘Recorre todas las filas del resultado
Do While Not result.EOF
‘ Muestra la fila actual
Response.Write "<p><b><font face=Verdana size=1><a href=noticia.asp?id=" &result.Fields("id") & ">"&result.Fields("titulo")&"</a></b><br><font color=""#696969"">&#149; " &result.Fields("copete") & "</font></font></p>"

‘Pasa a la siguiente fila
result.MoveNext
Loop
‘Libera memoria
result.Close
Set result = Nothing
con.Close
Set con = Nothing
%>
</body>
</html>

noticia.asp

Por último, este archivo se encarga de mostrar la noticia de acuerdo al valor de ID, ejemplo:
noticia.asp?id=1, mostrará la noticia con el ID 1
noticia.asp?id=1454, mostrará la noticia con el ID 1454

Igualmente, al armar el listado, los links a las noticia ya vienen definidos con el valor correspondiente.

<%
Set con = Server.CreateObject("ADODB.Connection")
con.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & 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)
%>
<html>
<head>
<title>Página nueva </title>
</head>
<body>
<p><font face="Arial" size="5" color="#0080C0"><%=result("titulo")%></font></p>
<p><font face="Arial" size="2"><strong><%=result("copete")%></strong></font></p>
<p><font face="Arial" size="2"><%=result("noticia")%></font></p>
</body>
</html>

Bueno, este fue un ejemplo sencillo de como armar un sistema de noticias en ASP. En los próximos artículos sobre ASP vamos a mostrarle cómo realizar una paginación de resultados, para hacer más vistosos los listados.

Si lo desean, puede descargar los código fuente en un archivo ZIP: Click aquí

Deja un comentario