9
« en: 31 de Octubre de 2011, 19:15:40 pm »
Bueno no se si esto te sirva
primero crear una tabla categorías Nombre y Descripción
segundo a mensajes le agregas un campo que se llame idcategorias y hay se agrega el id de la categoria para poder seleccionarlos segun la llave que se ponga
yo hize algo con el codigo que pusiste todabia le falta pero con eso ya puedes agregar categorias y a dicha agregarles mensajes queda a tu mano para que lo sigas editando y como dice nuestro amigo HiddenHlF es sierto para aprender hay que practicas hacer las cosas por tu cuenta podrias poner errores o lo que salga de mas te dejo el codigo en que hize hasta el momento
Base de datos
-- phpMyAdmin SQL Dump
-- version 3.3.9
-- http://www.phpmyadmin.net
--
-- Servidor: localhost
-- Tiempo de generación: 31-10-2011 a las 19:07:57
-- Versión del servidor: 5.5.8
-- Versión de PHP: 5.3.5
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
--
-- Base de datos: `forito`
--
-- --------------------------------------------------------
--
-- Estructura de tabla para la tabla `categoria`
--
CREATE TABLE IF NOT EXISTS `categoria` (
`idcategoria` int(11) NOT NULL AUTO_INCREMENT,
`Nombre` varchar(45) NOT NULL,
`Descripcion` varchar(45) NOT NULL,
PRIMARY KEY (`idcategoria`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ;
-- --------------------------------------------------------
--
-- Estructura de tabla para la tabla `mensajes`
--
CREATE TABLE IF NOT EXISTS `mensajes` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`autor` varchar(255) NOT NULL,
`titulo` varchar(255) NOT NULL,
`mensaje` text NOT NULL,
`idcategoria` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=7 ;
-- --------------------------------------------------------
--
-- Estructura de tabla para la tabla `respuestas`
--
CREATE TABLE IF NOT EXISTS `respuestas` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`autor` varchar(255) NOT NULL,
`titulo` varchar(255) NOT NULL,
`mensaje` text NOT NULL,
`respuestas` varchar(255) NOT NULL,
PRIMARY KEY (`id`),
KEY `respuestas` (`respuestas`),
KEY `respuestas_2` (`respuestas`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=5 ;
index.php
<?PHP
/** SISTEMA DE FOROS SIMPLE By MASATO **/
/** ESTE SISTEMA DE FOROS ES ÚNICAMENTE CON EL FIN DE EXPLICAR PHP A LOS NOVATOS **/
include('conectar.php'); //Incluimos el archivo conectar.php
echo "<b><a href='categoria.php'>Crear Categoria</a></b><br><hr>";
$seleccionar = mysql_query("SELECT * FROM categoria ORDER BY idcategoria ASC"); //Acemos la consulta a la base de datos para mostrar los mensajes ordenados por ID y en orden asendente
if (mysql_num_rows($seleccionar)) { //Si hay contenido en la DB continuamos con while
while ($row = mysql_fetch_array($seleccionar)) { //Hacemos un bucle para que nos muestre todos los mensajes
echo "Categoria:<b><a href='mensajes.php?id=$row[idcategoria]'>$row[Nombre]</a></b>"; //Mostramos el título con un enlace al mensaje y sus respuestas
echo "<br><b><a href='nuevo.php?id=$row[idcategoria]'>Dejar un Mensaje</a></b><br><hr>"; //Boton para dejar mensaje
echo "<br><hr>"; //Bajamos un renglon y creamos una linea
}
} else { //Si no hay ningún mensaje en la DB mostramos lo siguiente
echo "Nuestro foro no posee mensaje alguno";
}
?>
mensaje.php
<?PHP
/** SISTEMA DE FOROS SIMPLE By MASATO **/
/** ESTE SISTEMA DE FOROS ES ÚNICAMENTE CON EL FIN DE EXPLICAR PHP A LOS NOVATOS **/
include('conectar.php'); //Incluimos el archivo conectar.php
$get = $_GET['id']; //Definimos $_GET['id'] como $get
$seleccionar = mysql_query("SELECT * FROM mensajes WHERE id = '$get'"); //Acemos la consulta a la base de datos para mostrar los mensajes ordenados por ID y en orden desendente donde la ID es igual a la enviada por $_GET
$row = mysql_fetch_array($seleccionar); //Extraemos los resultados para mostrarlos
echo "<a href='respuesta.php?id=$get'><b>RESPONDER</b></a>
<br><br>";
echo "<b>Título:</b> <i>$row[titulo]</i>
<br>
<b>Mensaje:</b>
<br>
$row[mensaje]
<br>
<b>Enviado por:</b> <i>$row[autor]</i>"; //Mostramos los datos ordenados
$seleccionar1 = mysql_query("SELECT * FROM mensajes WHERE idcategoria = '$get' ORDER BY id DESC");
if (mysql_num_rows($seleccionar1) or die (mysql_error())) { //Si hay respuestas mostramos los datos ordenados
$row1 = mysql_fetch_array($seleccionar1);
echo "<hr>";
echo "<b>Título:</b> <i>$row1[titulo]</i>
<br>
<b>Mensaje:</b>
<br>
$row1[mensaje]
<br>
<b>Enviado por:</b> <i>$row1[autor]</i>"; //Mostramos los datos ordenados
echo "<br><br>
<a href='respuesta.php?id=$get'><b>RESPONDER</b></a>";
} //Si no hay respuestas, no se mostrará nada
?>
nuevo.php
<?PHP
/** SISTEMA DE FOROS SIMPLE By MASATO **/
/** ESTE SISTEMA DE FOROS ES ÚNICAMENTE CON EL FIN DE EXPLICAR PHP A LOS NOVATOS **/
include('conectar.php'); //Incluimos el archivo conectar.php
if (isset($_POST['enviar'])) { //Si se apretó el boton de enviar, grabamos los datos
$insert = "INSERT INTO mensajes (autor,titulo,mensaje,idcategoria) VALUES ('".mysql_real_escape_string($_POST['autor'])."', '".mysql_real_escape_string($_POST['titulo'])."', '".mysql_real_escape_string($_POST['mensaje'])."', '".mysql_real_escape_string($_POST['idcategoria'])."')"; //Consulta para agregar el mensaje
if (mysql_query($insert) or die (mysql_error())) { //Si se agregó el mensaje correctamente le mostramos un mensaje
echo "Su mensaje ha sido agregado correctamente";
} else { //Si no le mostramos el mensaje de error
echo "Hubo un error al agregar el mensaje";
}
} else { //Si no se a pulsado el boton ENVIAR, mostramos el formulario
$id = $_GET['id'];
echo "<form action='nuevo.php' method='POST'>
Autor: <input type='text' name='autor'>
<br>
Título: <input type='text' name='titulo'>
<br>
Mensaje: <textarea name='mensaje'></textarea>
<br>
<input type='hidden' name='idcategoria' value='$id'>
<input type='submit' name='enviar' value='Enviar mensaje'>";
}
?>
respuesta.php
<?PHP
/** SISTEMA DE FOROS SIMPLE By MASATO **/
/** ESTE SISTEMA DE FOROS ES ÚNICAMENTE CON EL FIN DE EXPLICAR PHP A LOS NOVATOS **/
include('conectar.php'); //Incluimos el archivo conectar.php
$get = $_GET['id']; //Definimos $_GET['id'] como $get
if (isset($_POST['enviar'])) { //Si se apretó el boton de enviar, grabamos los datos
$insert = "INSERT INTO respuestas (autor,titulo,mensaje,respuestas) VALUES ('".mysql_real_escape_string($_POST['autor'])."', '".mysql_real_escape_string($_POST['titulo'])."',' ".mysql_real_escape_string($_POST['mensaje'])."', '$_POST[get]')"; //Consulta para agregar el mensaje
if (mysql_query($insert)) { //Si se agregó el mensaje correctamente le mostramos un mensaje
echo "Su mensaje ha sido agregado correctamente";
} else { //Si no le mostramos el mensaje de error
echo "Hubo un error al agregar el mensaje";
}
} else { //Si no se a pulsado el boton ENVIAR, mostramos el formulario
echo "<form action='respuesta.php' method='POST'>
Autor: <input type='text' name='autor'>
<br>
Título: <input type='text' name='titulo'>
<br>
Mensaje: <textarea name='mensaje'></textarea>
<br>
<input type='submit' name='enviar' value='Enviar mensaje'>
<input type='hidden' value='$get' name='get'>"; //Formulario, usamos un input hidden para mandar el valor de GET
}
?>
categoria.php
<?PHP
/** SISTEMA DE FOROS SIMPLE By MASATO **/
/** ESTE SISTEMA DE FOROS ES ÚNICAMENTE CON EL FIN DE EXPLICAR PHP A LOS NOVATOS **/
include('conectar.php'); //Incluimos el archivo conectar.php
if (isset($_POST['enviar'])) { //Si se apretó el boton de enviar, grabamos los datos
$insert = "INSERT INTO categoria (Nombre,Descripcion) VALUES ('".mysql_real_escape_string($_POST['nombre'])."', '".mysql_real_escape_string($_POST['descripcion'])."')"; //Consulta para agregar el mensaje
if (mysql_query($insert) or die (mysql_error())) { //Si se agregó el mensaje correctamente le mostramos un mensaje
echo "Su mensaje ha sido agregado correctamente";
} else { //Si no le mostramos el mensaje de error
echo "Hubo un error al agregar el mensaje";
}
} else { //Si no se a pulsado el boton ENVIAR, mostramos el formulario
echo "<form action='categoria.php' method='POST'>
Nombre: <input type='text' name='nombre'>
<br>
Descripcion: <input type='text' name='descripcion'>
<br>
<input type='submit' name='enviar' value='Crear Categoria'>";
}
?>
conectar.php
<?PHP
/** SISTEMA DE FOROS SIMPLE By MASATO **/
/** ESTE SISTEMA DE FOROS ES ÚNICAMENTE CON EL FIN DE EXPLICAR PHP A LOS NOVATOS **/
$db_host = ('localhost'); //Nombre del servidor MySQL, por defecto localhost
$db_user = ('root'); //Usuario de la base de datos
$db_pass = (''); //Contraseña de la base de datos
$db_name = ('forito'); //Nombre de la base de datos
$conectar = mysql_connect($db_host, $db_user, $db_pass) or die (mysql_error()); //Conectamos a la base de datos
mysql_select_db($db_name, $conectar) or die (mysql_error()); //Seleccionamos la base de datos
?>
Espero te sirva