hola foreros, he publicado un en mi blog, como crear un sistema de noticias sencillo usando php y mysql, y quiero compartirlo con ustedes, y tal vez sea un buen momento, pues ultimamente he visto varios post relacionados con el tema.
basicamente se conforma de los siguientes archivos:
- db-cnx.php -> conexion a la BD
- add-categoria.php -> agregar categorias
- add-noticia.php -> agregar las noticias
- list-categoria.php -> mostrar las categorias en una lista
- list-noticia.php -> mostrar las noticias dependiendo de la categoria pedida, si no, entonnces mostrara todas las noticias
- index.php -> inicio, incluye los archivos: db-cnx.php, list-categoria.php y list-noticia.php
- sistemanoticias.sql -> la base de datos
aqui el codigo de cada uno:
sistemanoticias.sql Código PHP:
-- Base de datos: `sistemanoticias`
CREATE TABLE `sn_categorias` (
`cat_ID` int(11) NOT NULL auto_increment,
`catCategoria` varchar(100) NOT NULL,
PRIMARY KEY (`cat_ID`)
) ENGINE=MyISAM;
CREATE TABLE `sn_noticias` (
`not_ID` int(11) NOT NULL auto_increment,
`notTitulo` varchar(255) NOT NULL,
`notTexto` text NOT NULL,
`notCategoriaID` int(11) NOT NULL,
PRIMARY KEY (`not_ID`)
) ENGINE=MyISAM;
db-cnx.php Código PHP:
<?php
$db_link = mysql_connect('localhost', 'root', '');
if(!$db_link){
die('No se pudo conectar: ' . mysql_error());
}
$db_selected = mysql_select_db('sistemanoticias', $db_link);
if(!$db_selected){
die('No se selecciono la BD: ' . mysql_error());
}
?>
add-categoria.php Código PHP:
<?php
// incluimos el archivo de conexion
include ('db-cnx.php');
// recibimos el formulario
if(isset($_POST['enviar']) && $_POST['enviar'] == 'Enviar'){
// comprobamos que el formulario no envie campos vacios
if(!empty($_POST['catCategoria'])){
// creamos la variable y le asignamos el valor a insertar
$catCategoria = $_POST['catCategoria'];
// hacemos el INSERT en la BD
$sqlInsertCat = mysql_query("INSERT INTO sn_categorias (catCategoria)
VALUES ('$catCategoria')", $db_link)
or die(mysql_error());
// enviamos un mensaje de exito
echo "Los datos fueron gurdados correctamente";
}else{
// si el formulario viene vacio
// enviamos un mensaje de error
echo "Debe llenar el formulario";
}
}
?>
<!-- el formulario -->
<form name="categoria" action="<?php $_SERVER['PHP_SELF'] ?>" method="post">
<p>
Nueva Categoría<br />
<input type="text" name="catCategoria" />
<input type="submit" name="enviar" value="Enviar" />
</p>
</form>
add-noticia.php Código PHP:
<?php
// incluimos el archivo de conexion
include ('db-cnx.php');
// recibimos el formulario
if(isset($_POST['enviar']) && $_POST['enviar'] == 'Enviar'){
// comprobamos que el formulario no envie campos vacios
if(!empty($_POST['notTitulo']) && $_POST['notTexto'] &&
$_POST['notCategoriaID']){
// creamos las variables y les asignamos los valores a insertar
$notTitulo = $_POST['notTitulo'];
$notTexto = $_POST['notTexto'];
$notCategoriaID = $_POST['notCategoriaID'];
// hacemos el INSERT en la BD
$sqlInsertNot = mysql_query("INSERT INTO sn_noticias
(notTitulo, notTexto, notCategoriaID)
VALUES ('$notTitulo', '$notTexto', '$notCategoriaID')",
$db_link) or die(mysql_error());
// enviamos un mensaje de exito
echo "Los datos fueron gurdados correctamente";
}else{
// si el formulario envia algun campo vacio
// enviamos un mensaje de error
echo "Debe llenar todos los campos del formulario";
}
}
?>
<!-- el formulario -->
<form name="noticia" action="<?php $_SERVER['PHP_SELF']; ?>" method="post">
<p>
Título de la Noticia<br />
<input type="text" name="notTitulo" size="50" />
</p>
<p>
Texto de la Noticia<br />
<textarea name="notTexto" rows="10" cols="50"></textarea>
</p>
<p>
Categoría<br />
<select name="notCategoriaID">
<option value="">Escoger de la Lista</option>
<?php
// asignamos una categoria a la noticia
// mediante un select
$sqlQueryCat = mysql_query("SELECT * FROM sn_categorias", $db_link)
or die(mysql_error);
// creamos un bucle while
// que nos muestre todas las categorias
// que tenemos guardadas en la BD
while($rowCat = mysql_fetch_array($sqlQueryCat)){
echo "<option value='$rowCat[cat_ID]'>$rowCat[catCategoria] - $rowCat[cat_ID]</option>";
}
?>
</select>
</p>
<p>
<input type="submit" name="enviar" value="Enviar" />
</p>
</form>
list-categoria.php Código PHP:
<h1>Categorías...</h1>
<?php
$sqlQueryCat = mysql_query("SELECT * FROM sn_categorias", $db_link)
or die(mysql_error);
echo "<ul>";
while($rowCat = mysql_fetch_array($sqlQueryCat)){
echo "<li><a href='?categoria=$rowCat[catCategoria]&id=$rowCat[cat_ID]'>$rowCat[catCategoria]</a></li>";
}
echo "</ul>";
?>
list-noticia.php
Código PHP:
<?php
// verificamos si se ha enviado
// alguna variable via GET
if(isset($_GET['id']) && $_GET['categoria']){
// asignamos los valores
// a las variables que usaremos
$cat_ID = $_GET['id'];
$categoria = $_GET['categoria'];
$clausula = "WHERE notCategoriaID = '$cat_ID'";
// tambien armamos el titular de la pagina
$titulo = "Noticias en la categoria $categoria";
}else{
// de lo contrario
// el titulo sera general
$titulo = "Todas las noticias";
}
// armamos la consulta
$sqlQueryNot = mysql_query("SELECT notTitulo, notTexto FROM sn_noticias
$clausula", $db_link)
or die(mysql_error);
echo "<h1>$titulo</h1>";
// mostramos las noticias,
// otra vez usanod un bucle while
while($rowNot = mysql_fetch_array($sqlQueryNot)){
echo "<h1>$rowNot[notTitulo]</h1>";
echo nl2br("$rowNot[notTexto]");
}
?>
index.php Código PHP:
<html>
<head>
<title>Sistema de Noticias - By RogerTM</title>
</head>
<body>
<h1>Sistema de Noticias - By RogerTM</h1>
<?php include('db-cnx.php'); ?>
<div style="float:left; width: 25%;">
<?php include('list-categoria.php'); ?>
</div>
<div style="float:right; width: 75%;">
<?php include('list-noticia.php'); ?>
</div>
</body>
</html>
en mi blog, doy la explicacion de como hacerlo, no la puse aqui por razones obvias.
http://rogertm.bloggerscuba.com/post...mysql-parte-i/ http://rogertm.bloggerscuba.com/post...ysql-parte-ii/
espero les sirva y tambien espero sus sugerencias y comentarios
saludos y suerte