Ver Mensaje Individual
  #1 (permalink)  
Antiguo 25/06/2009, 09:28
Avatar de Distriker
Distriker
 
Fecha de Ingreso: marzo-2008
Ubicación: Las Palmas De Gran Canarias
Mensajes: 924
Antigüedad: 16 años, 8 meses
Puntos: 23
No me crea ni lista las categorías

Hola a todos, acabo de terminar el tutorial de Rogertm sobre como crear un sistema de noticias (parte 1 y parte 2).

Ahora tengo un problema el cual no entiendo (no es que entienda mucho de PHP pero de este problema no entiendo nada).

Mi problema es que al crear una categoria en /add-categoria.php, no me la crea, simplemente parece pero no, ademas, cuando voy al indice tampoco se ve listada.

Miren, aquí os dejo los codigos:

  • sistemanoticias.sql
Código SQL:
Ver original
  1. -- Base de datos: `sistemanoticias`
  2.  
  3. CREATE TABLE `sn_categorias` (
  4.   `cat_ID` INT(11) NOT NULL AUTO_INCREMENT,
  5.   `catCategoria` VARCHAR(100) NOT NULL,
  6.   PRIMARY KEY  (`cat_ID`)
  7. ) ENGINE=MyISAM;
  8.  
  9. CREATE TABLE `sn_noticias` (
  10.   `not_ID` INT(11) NOT NULL AUTO_INCREMENT,
  11.   `notTitulo` VARCHAR(255) NOT NULL,
  12.   `notTexto` text NOT NULL,
  13.   `notCategoriaID` INT(11) NOT NULL,
  14.   PRIMARY KEY  (`not_ID`)
  15. ) ENGINE=MyISAM;

  • db-cnx.php
Código PHP:
<?php
$db_link 
mysql_connect('localhost''distriker_adm''699389213');
if(!
$db_link){
    die(
'No se ha podido conectar: ' mysql_error());
}
$db_selected mysql_select_db('distriker_noticias'$db_link);
if(!
$db_selected){
die(
'No se selecciono la BD: ' mysql_error());
}
?>
  • add-categoria.php
Código PHP:
<?php
// archivo de conexión con la BD
include ('db-cnx.php');
// recibimos el formulario
if(isset($_POST['enviar']) && $_POST['enviar'] == 'Enviar'){
// evitamos que los campos estén vacios
if(!empty($_POST['catCategoria'])){
// se crea la variable y se le asigna el valor a insertar
$catCategoria $_POST['catCategoria'];
// se hace el insert en la BD
$sqlInsertCat mysql_query("INSERT INTO sn_categorias (catCategoria)
VALUES ('"
.$catCategoria."')"$db_link)
or die(
mysql_error());
// si está todo correcto, se envia un mensaje de exito
echo "Los datos han sido guardados correctamente";
}else{
// en cambio, si el formulario tiene algún campo vacio, envia un mensaje de error
echo "Debe llenar todos el formulario";
}
}
?>
<!-- Agregar las categorias mediante 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
// archivo de conexión con la BD
include ('db-cnx.php');
// recibimos el formulario
if(isset($_POST['enviar']) && $_POST['enviar'] == 'Enviar'){
// evitamos que los campos estén vacios
if(!empty($_POST['notTitulo']) && $_POST['notTexto'] &&
$_POST['notCategoriaID']){
// se crean las variables y se le añaden los valores a insert
$notTitulo $_POST['notTitulo'];
$notTexto $_POST['notTexto'];
$notCategoriaID $_POST['notCategoriaID'];
// creamos 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());
// si está todo correcto, enviamos un mensaje de exito
echo "Los datos han sido guardados correctamente";
}else{
// en cambio, si el formulario tiene algún campo vacio, envia un mensaje de error
echo "El formulario debe de tener todos los campos llenos";
}
}
?>
<!-- Agregar categorias mediante 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 una categoria</option>
<?php
// se le asigna una categoría a la noticia mediante un select
$sqlQueryCat mysql_query("SELECT * FROM sn_categorias"$db_link)
or die(
mysql_erro());
// creamos un bucle while que nos muestra todas las categorias que tenemos guardadas en la BD
while($rowCat mysql_fetch_array($sqlQueryCat)){
echo 
"<option value='$rowCat{cat_ID'>$rowCat[catCategoria]</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
// Se verifica el envio con alguna variable via GET
if(isset($_GET['id']) && $_GET['categoria']){
// Se le asignan los valores a las variables
$cat_ID $_GET['id'];
$categoria $_GET['categoria'];
$clausula "WHERE notCategoriaID = '$cat_ID'";
// Titular de la página
$titulo "Noticias de $categoria";
}else{
// Sino, titulo general
$titulo "Todas las noticias";
}
// Creo la consulta
$sqlQueryNot mysql_query("SELECT notTitulo, notTexto FROM sn_noticias
$clausula"
$db_link)
or die(
mysql_error());
echo 
"<h1>$titulo</h1>";
// Se muestran las noticias mediante un While
while($rowNot mysql_fetch_array($sqlQueryNot)){
echo 
"<h1>$rowNot[notTitulo]</h1>";
echo 
n12br($rowNot['notTexto']);
}
?>
  • index.php
Código PHP:
<html>
<head>
<title>Sistema de Noticias - Echo por RogerTM - Modificado por Distriker</title>
</head>
<body>
<h1>Sistema de Noticias - Echo por RogerTM - Modificado por Distriker</h1>
<?php include('db-cnx.php'); ?>
<div style="float: left; widht: 25%;">
<?php include('list-categoria.php');  ?>
</div>
<div style="float: right; widht: 75%;">
<?php include('list-noticia.php');  ?>
</div>
</body>
</html>
¿Veis algún error?

Saludos
__________________
Si no te quejas, nunca conseguiras nada, pero si te quejas siempre lo perderás todo.
Una mala acción da fruto a un mal Karma.