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
-- 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', '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>
Saludos