- Unido
- diciembre 28, 2007
- Mensajes
- 1,097
- Karma
- 610
Buenas a todos!
Pues hoy pensando y pensando se me ha ocurrido haceros un script de muestra de como crear un foro en PHP.
Comencemos!
Os voy a ir poniendo los codigos y los iré explicando.
Archivo SQL(Son las consultas que hay que hacer en el phpMyAdmin)
Vamos con el PHP.
config.php(Es el archivo que contiene los datos y la conexión a la base de datos)
foro.php(Donde se muestran las categorias del foro)
verforo.php(Donde se ven y se accede a los temas que hay en cada categoria)
vertema.php(Donde se mostraran los datos del tema)
creacat.php(Donde se crearan las categorias)
Y esto es todo, os dejo los archivos ya creados por si sois vagos, pero es mejor que lo hagáis vosotros mismos, ganaréis mas experiencia y mas seguridad en vosotros, yo he hecho esto para daros una idea de la estructura, ahora vosotros cread el vuestro!
Pues hoy pensando y pensando se me ha ocurrido haceros un script de muestra de como crear un foro en PHP.
Comencemos!
Os voy a ir poniendo los codigos y los iré explicando.
Archivo SQL(Son las consultas que hay que hacer en el phpMyAdmin)
Código:
CREATE TABLE categorias (
id int(4) AUTO_INCREMENT NOT NULL,
nombre varchar(255) NOT NULL,
descripcion varchar(255) NOT NULL,
PRIMARY KEY(id)
);
CREATE TABLE temas (
id int(4) AUTO_INCREMENT NOT NULL,
id_foro varchar(100) NOT NULL,
nombre varchar(255) NOT NULL,
texto blob,
PRIMARY KEY(id)
);
CREATE TABLE comentarios (
id int(4) AUTO_INCREMENT NOT NULL,
id_tema bigint(7) default NULL,
comentario blob,
KEY(id)
);
config.php(Es el archivo que contiene los datos y la conexión a la base de datos)
PHP:
<?php
$host = 'localhost'; // Ej: localhost, es el servidor de la base de datos
$user = 'usuario'; // Ej: root, es el usuario de la base de datos
$pass = 'pass'; // Ej: 4234254, es la contraseña de la base de datos
$db = 'db'; // ej: Foro, es el nombre de la base de datos
// Hacemos la conexion a la base de datos
$conectar = mysql_connect($host,$user,$pass) or die('Los datos no son correctos');
// Seleccionamos la BD
mysql_select_db($db,$conectar) or die('No se ha podido conectar a la base de datos');
?>
PHP:
<title>Foro</title>
<?php
// Incluimos el archivo de la conexion y los datos de la base de datos para podernos conectar
include('config.php');
// Hacemos la consulta a la base de datos para poder mostrar las categorias
$result = mysql_query('SELECT * FROM categorias');
while($rows = mysql_fetch_array($result)){
// Mostramos el link y el nombre de la categoria junto con su descripcion
echo "<a href=\"verforo.php?id_foro=".$rows['id']."\">".$rows['nombre']."</a>";
echo "<br>";
echo $rows['descripcion']."<br>";
}
?>
<?php
// Seccion en donde se crean los temas.
if($_GET['que'] == "crear"){
// Definimos el REQUEST del select de las categorias
$nombre = $_REQUEST['select'];
// Hacemos la consulta a la base de datos para sacar las categorias
$cat = mysql_query("SELECT * FROM categorias WHERE nombre='$nombre'");
$cat2 = mysql_fetch_array($cat);
// Hacemos la insercion de los datos en la base de datos
mysql_query("INSERT INTO temas (nombre,texto,id_foro) VALUES ('$_REQUEST[titulo]','$_REQUEST[texto]','".$cat2[id]."')");
echo 'El tema ha sido añadido';
}
?>
<table width="100%">
<tr>
<td><form method="POST" action="foro.php?que=crear">
Escribe el titulo del tema anda xD:<br>
<input type="text" size="20" name="titulo"><br>
Elige en que foro quieres meter el tema anda xD:<br>
<select name="select">
<?php
// HAcemos la consulta para sacar las categorias
$select = mysql_query("SELECT * FROM categorias");
while($sel = mysql_fetch_array($select)){
// Mostramos las categorias en opciones para poder elegir donde ira nuestro tema
echo "<option value".$sel['nombre'].">".$sel['nombre']."</option>";
}
?>
</select> <br>
Escribe el tema anda xD:<br>
<textarea name="texto"></textarea>
<br><input type="submit" name="enviar">
</form></td>
</tr>
</table>
PHP:
<?php
// Incluimos el archivo con los datos y la conexion de la base de datos para poder conectarnos
include('config.php');
// Extraemos el numero del foro
$id = $_GET['id_foro'];
// Hacemos la consulta para poder extraer el nombre del foro
$result = mysql_query("SELECT * FROM categorias WHERE id='$id'");
$rows = mysql_fetch_array($result);
?>
<title><?php echo $rows['nombre']; ?></title>
<?php
// Hacemos la consulta para poder extraer los temas que hay en este foro
$result2 = mysql_query("SELECT * FROM temas WHERE id_foro='$id'");
while($row = mysql_fetch_array($result2)){
// Mostramos el link al tema y su nombre
echo "<a href=\"vertema.php?id_foro=$id&id=".$row['id']."\">".$row['nombre']."</a><br>";
}
?>
PHP:
<?php
// Incluimos el archivo con los datos y la conexion de la base de datos para poder conectarnos
include('config.php');
// Extraemos el numero del tema
$id = $_GET['id'];
// Hacemos la consulta para extraer el nombre del tema
$result = mysql_query("SELECT * FROM temas WHERE id='$id'");
$rows = mysql_fetch_array($result);
?>
<title><?php echo $rows['nombre']; ?></title>
<?php
// Hacemos la consulta para mostrar el contenido del tema y en que foro esta
mysql_query("SELECT id_foro FROM temas WHERE id='$id'");
$result = mysql_query("SELECT * FROM temas WHERE id='$id'");
while($row = mysql_fetch_array($result)){
// Mostramos los datos
echo $row['nombre'];
echo "<br>";
echo $row['texto'];
}
// Seccion donde se procesa la respuesta
if($_GET['seccion'] == "reply"){
if($_POST['enviar']){
// DEfinimos el REQUEST del texto de la respuesta
$texto = $_REQUEST['texto'];
// Hacemos la insercion de los datos a la base de datos
mysql_query("INSERT INTO comentarios (comentario,id_tema) VALUES ('$texto','$id')");
echo "<br>El comentario se ha enviado correctamente, <a href=\"".$_SERVER['HTTP_REFERER']."\">volver al tema</a>";
}
}
?>
<br>_____________________________________________________<br>
<?php
// Hacemos la consulta para mostrar las respuestas
$select2 = mysql_query("SELECT * FROM comentarios WHERE id_tema='$id'");
while($reg = mysql_fetch_array($select2)){
//Mostramos los datos
echo "<br>";
echo $reg['comentario'];
echo "<br>";
}
?>
<table width="100%">
<tr>
<td><form method="POST" action="<?php echo $_SERVER['REQUEST_URI']; ?>&seccion=reply">
Escribe el tema anda xD:<br>
<textarea name="texto"></textarea>
<br><input type="submit" name="enviar">
</form></td>
</tr>
</table>
PHP:
<?php
// Incluimos el archivo con los datos y la conexion de la base de datos para poder conectarnos
include('config.php');
//Hacemos la insercion de los datos en la base de datos
if($_POST['enviar']){
mysql_query("INSERT INTO categorias (nombre,descripcion) VALUES ('$_REQUEST[nombre]','$_REQUEST[desc]')");
echo 'La categoria se ha creado correctamente';
}
?>
<form method="POST" action="creacat.php">
Escribe el nombre de la categoria:
<br>
<input type="text" name="nombre">
<br>
Escribe la descripcion de la categoria:
<br>
<input type="text" name="desc">
<br><br>
<input type="submit" name="enviar">
</form>
Archivos adjuntos
-
3.4 KB Vistas: 1