1
PHP / Re:[Ayuda]Creacion de foro avanzado
« en: 03 de Noviembre de 2011, 01:35:40 am »
fijate en mi respuesta xD y veras de que me sirvio
Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.
Define ayudar, lo tendremos que hacer nosotros todo o tu participaras equitativamente con lo que vamos haciendo?
Saludos,
Ángel Q.
conectar.phpeste codigo gracias a Masato (Mensaje para Masato: Muchas gracias por tu tutorial), pero lo que yo necesito es el sistema de foros y categorias para ser exactos, como si fuera un foro profesional con sus foros y categorias, mensajes, etc...
<?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 = ('tu_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
?>
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='nuevo.php'>Dejar un Mensaje</a></b><br><hr>"; //Boton para dejar mensaje
$seleccionar = mysql_query("SELECT * FROM mensajes ORDER BY id 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 "<b><a href='mensajes.php?id=$row[id]'>$row[titulo]</a></b>"; //Mostramos el título con un enlace al mensaje y sus respuestas
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";
}
?>
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) VALUES ('".mysql_real_escape_string($_POST['autor'])."', '".mysql_real_escape_string($_POST['titulo'])."', '".mysql_real_escape_string($_POST['mensaje'])."')"; //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='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='submit' name='enviar' value='Enviar mensaje'>";
}
?>
mensajes.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 respuestas WHERE respuestas = '$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
?>
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
}
?>
Base de Datos:Código: [Seleccionar]CREATE TABLE `mensajes` (
`id` int(11) NOT NULL auto_increment,
`autor` varchar(255) NOT NULL,
`titulo` varchar(255) NOT NULL,
`mensaje` text NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
CREATE TABLE `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`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
Hola,
Te equivocas, yo la he leído jaja. Por cierto; bienvenido al foro, Alex. Si de verdad quieres aprender a programar deberás estar muchas horas y horas practicando hasta que te salga todo solo y para empezar, el entusiasmo es lo 1ero que hay que tener y tu, ya lo tienes. Bienvenido de nuevo ;-)
Un saludo,
Siquillote