ARTICULOS

Sistema de noticias en ASP

Autor: Fabian Muller (http://www.webexperto.com) - 18/06/2002

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í

 

Más artículos sobre ASP

1. Haciendo restas entre fechas
2. Utilizando el componente AspEmail
3. Rotación de banners en ASP
4. Envio de emails con CDONTS
5. Alternar el color de filas en un RecordSet
6. Contador de visitas sin utilizar bases de datos
7. Agregar, eliminar y modificar datos a una BD
8. Cómo crear un XML desde ASP
9. Detectar plugin de Flash con ASP
10. Trabajando con fechas y horas
Más artículos...

Otros artículos...

ASP Cómo crear un XML desde ASP
ASP Utilizando includes en ASP
Marketing Factores de posicionamiento
PHP Forzar descarga de archivos
PHP Resolución: JavaScript a PHP
PHP Tutorial de sesiones en PHP
Java Script Todo sobre imágenes en JavaScript
PHP Instalación de PHP sobre PWS 4.0
Marketing Email marketing
Java Script Efecto MouseOver con imágenes
Más artículos...