Ver Mensaje Individual
  #1 (permalink)  
Antiguo 13/02/2008, 13:40
Avatar de rogertm
rogertm
Mod->Cuba
 
Fecha de Ingreso: julio-2005
Ubicación: /home/Cuba/Habana/rogertm/
Mensajes: 2.922
Antigüedad: 18 años, 9 meses
Puntos: 638
Sistema de Noticias (aporte)

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_IDint(11NOT NULL auto_increment,
  `
catCategoriavarchar(100NOT NULL,
  
PRIMARY KEY  (`cat_ID`)
ENGINE=MyISAM;

CREATE TABLE `sn_noticias` (
  `
not_IDint(11NOT NULL auto_increment,
  `
notTitulovarchar(255NOT NULL,
  `
notTextotext NOT NULL,
  `
notCategoriaIDint(11NOT 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&iacute;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&iacute;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&iacute;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&iacute;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]&amp;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
__________________
Friki y Blogger por Cuenta Propia:213
Twenty'em: Theming is Prose

Última edición por rogertm; 16/12/2008 a las 12:43