Foros del Web » Programando para Internet » PHP »

No me crea ni lista las categorías

Estas en el tema de No me crea ni lista las categorías en el foro de PHP en Foros del Web. Hola a todos, acabo de terminar el tutorial de Rogertm sobre como crear un sistema de noticias ( parte 1 y parte 2 ). Ahora ...
  #1 (permalink)  
Antiguo 25/06/2009, 09:28
Avatar de 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.
  #2 (permalink)  
Antiguo 25/06/2009, 09:33
Avatar de Synkronice  
Fecha de Ingreso: octubre-2007
Ubicación: Madrid
Mensajes: 831
Antigüedad: 17 años, 1 mes
Puntos: 48
Respuesta: No me crea ni lista las categorías

Hombre así a simple vista veo un error aquí

"Sistema de Noticias - Echo por RogerTM - Modificado por Distriker"

El verbo hacer es con H

"Sistema de Noticias - Hecho por RogerTM - Modificado por Distriker"

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

Huy, fallo gravísimo, gracias por habermelo comentado.

Ahora, ¿ves algún problema en el codigo?

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.
  #4 (permalink)  
Antiguo 25/06/2009, 09:48
Avatar de Synkronice  
Fecha de Ingreso: octubre-2007
Ubicación: Madrid
Mensajes: 831
Antigüedad: 17 años, 1 mes
Puntos: 48
Respuesta: No me crea ni lista las categorías

A simple vista no veo nada raro. Será mejor que debuguearas un poco, a lo mejor si se están guardando en base de datos y lo que está mal es el script que las muestra. Todo puede ser...

Si te saltan errores adjuntalos también.

Accede a la base de datos directamente desde algún cliente de base de datos como phpmyadmin para contrastar con lo que se te muestra en tu aplicación.

Saludos!
  #5 (permalink)  
Antiguo 25/06/2009, 10:20
Avatar de cesarpunk  
Fecha de Ingreso: enero-2008
Ubicación: Lima
Mensajes: 943
Antigüedad: 16 años, 10 meses
Puntos: 9
Respuesta: No me crea ni lista las categorías

la mejor manera es comprobar si tus datos llegan a tus querys, asi que mejor imprime esos querys
__________________
Quitenme la vida pero no la bebida.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:29.