Desarrollo de un Foro

Estoy desarrollando un foro... Y el rubro de la empresa es netamente consultas.. Por tal motivo y guiándome del foro de esta web todoexpertos, que por cierto me parece fabulosa.. Simple, eficaz, y rápida...
Necesito realizar un foro igual al de todoexpertos.com
Empezar con las categorías...
Tengo una tabla llamada categorías...
donde existen 3 campos: cod_area,nom_area,comentario, y una tabla llamada asesores: id_asesor,nom_asesor,referencia...
¿Preciso de otra tabla verdad para enlazar ambas tablas?..
Y más o menos si me dieras una idea de como hacer el código, específicamente este punto... Y de como seria la 3ra tabla...
muchas gracias... Anticipadamente

1 respuesta

Respuesta
1
No necesitas otra tabla, con dos tablas es suficiente.
La primera tabla tendría los campos cod_area, nom_area y comentario.
La segunda tabla es de asesores, y cada asesor pertenece a una (o
varias) categorías. Entonces la tabla tendría los siguientes campos:
id_asesor, nom_asesor, referencia, cod_area. El campo cod_area
Pertenece a la tabla de categorías. Es lo que las enlaza a las dos. Cuando insertes un nuevo asesor solo tienes que incluir en ese campo el código de la categoría a la que pertenece.
Respecto al script puedes empezar realizando una consulta a la base de datos para obtener todas las categorías y las muestras creando enlaces para que al pulsarlas entre en esa categoría. Los campos de las categorías que puedes mostrar son nom_area y comentario.
Cuando se pulse sobre el nombre de una categoría realizar una consulta a la base de datos para obtener todos los asesores de esa categoría y también los muestras creando enlaces para que al pulsarles se vaya a otra página que muestre las consultas realizadas a ese asesor concreto que se ha pulsado. Vas a necesitar otra tabla de consultas y otra de respuestas. Los campos podrían ser:
consultas: id_consulta, id_asesor, nivel, id_respuesta, consulta.
respuestas: id_respuesta, id_consulta, respuesta.
Cuando se haga una nueva pregunta se inserta en la base de datos con el id_asesor del asesor al que se le pregunta. El valor de id_consulta será único, no se puede repetir. Nivel será 0 para la primera consulta, 1 para la primera aclaración, 2 para la segunda aclaración, etc.
Cuando se le responda, se añade en la tabla de respuestas la respuesta con el id_consulta de la consulta respondida, y se actualiza ese registro de la consulta para enlazar con id_respuesta.
La idea no es complicada. Y el código tampoco lo es, solo tienes que ir realizando las consultas oportunas y cuando introduzcas datos, modificar los registros asociados a esos datos, ya sean nuevas consultas, respuestas o aclaraciones. Las aclaraciones serían igual que las respuestas, pero enlazarían con preguntas que tienen un número de nivel mayor a 0.
No se si ha quedado claro porque lo he escrito rapido, pero si no entiendes algo me lo dices.
Ese problemita ya lo solucione... mi duda ahora es que como ajustar el ancho en el table... tengo un campo llamado comentario(long text), y cuando hago la tabla como lo ajusto automáticamente para que salga todo ajustadito...
Ademas si no es incomodidad... como hago para que todo este código (el que te pase enantes..)me aparezca en la misma ventana.. ya le cambie el target pero nada..
Gracias anticipadamente
Lo que sucede es que varios asesores pueden pertenecer a una categoría(tabla áreas)..
He creado en la tabla asesores un nuevo campo para cada área, con valor char(1)...
Por eso he creado en la tabla áreas un nuevo campo llamado enlace.. dicho campo tiene que ser el mismo nombre del campo de la tabla asesores.. ese va hacer mi enlace... ahora he empezado con el código.. lo extraño es que me bota error.. justo en estas linea..
"Parse error: parse error in /home/www/aempresarial.com/foro/index.php on line 45"(es donde esta el $query)
$mod_enlace= $_GET['enlace'];
$mod_yes="S"
$query = mysql_query("SELECT * FROM asesores where $mod_enlace=$mod_yes") or die (mysql_error());
te muestro el codigo resumido..
<?php
$pag=$_SERVER['PHP_SELF'];
include('../prgs/dbconnect.php');
$query = mysql_query("SELECT * FROM areas order by nom_area") or die (mysql_error());
while($resultados = mysql_fetch_array($query)) {
....
este es el enlace:, he obviado la etiqueta table, echo, etc y otra mas..
<TD colspan="3"><font size="2" face="Arial Unicode MS"><strong><a href="$pag?accion=ver&enlace=$resultados[enlace]">$resultados[nom_area]</strong></font></TD>
}
?>
<?
if ($_GET['accion']=="ver"){
$mod_enlace= $_GET['enlace'];
$mod_yes="S"
$query = mysql_query("SELECT * FROM asesores where $mod_enlace=$mod_yes") or die (mysql_error());
while($resultados = mysql_fetch_array($query)) {
<tr><td><strong><font size="1" face="Verdana, Arial, Helvetica, sans-serif">$resultados[nom_area]</font></strong>
}
}
mysql_close();
...
todo esto es en el index.php
Ayuda please...
Y gracias por la respuesta
No entiendo muy bien a que te refieres cuando dices que quieres todo ajustado. Puedes usar los atributos de las tablas:
- ALIGN: center, left, right
- VALIGN: baseline, bottom, center, top
Con ellos consigues ajustar el contenido de la tabla. Si no son suficientes puedes usar el atributo STYLE para establecer estilos con mayor precisión.
Quizá estoy un poco despistado pero tampoco sé a que te refieres al decir que te aparezca en la misma ventana. Por lo que veo todo el código pertenece a index.php. Si se ejecuta de una vez se muestra todo en la misma página. ¿Quizá te refieres al resultado de la página que se ejecuta tras pulsar el enlace?
El esquema básico para hacer que una misma página muestre cosas distintas es el siguiente:
<?php
if (!isset($_GET[accion])) {
$pag=$_SERVER['PHP_SELF'];
include('../prgs/dbconnect.php');
$query = mysql_query("SELECT * FROM areas order by nom_area") or die (mysql_error());
while($resultados = mysql_fetch_array($query)) {
....
este es el enlace:, he obviado la etiqueta table, echo, etc y otra mas..
<TD colspan="3"><font size="2" face="Arial Unicode MS"><strong><a href="$pag?accion=ver&enlace=$resultados[enlace]">$resultados[nom_area]</strong></font></TD>
}
} else {
if ($_GET['accion']=="ver"){
$mod_enlace= $_GET['enlace'];
$mod_yes="S"
$query = mysql_query("SELECT * FROM asesores where $mod_enlace=$mod_yes") or die (mysql_error());
while($resultados = mysql_fetch_array($query)) {
<tr><td><strong><font size="1" face="Verdana, Arial, Helvetica, sans-serif">$resultados[nom_area]</font></strong>
}
}
mysql_close();
}
?>
Primero se comprueba si está definida la variable acción, la primera vez se entra por index.php y no está definida, por tanto se muestran enlaces. Al pulsar un enlace se pasa mediante GET la variable acción y enlace. Ahora si está definida la variable acción y por tanto se consulta la base de datos y se muestran los resultados de asesores.
¿Te ocurre lo mismo con otras págians que se conectan al gestor de bases de datos MySQL?
Haz la prueba con otra página que sepas que está funcionando. Si no crea una muy sencilla.
Ese problema suele ocurrir cuando la página no puede conectarse con el gestor MySQL. Revisa cuando ejecutas la función mysql_connect, que el usuario y la contraseña sean correctos.
También puedes probar a ejecutar phpMyAdmin, MySQL Control Center, o cualquier otro programa que se uses para conectar a MySQL, y ver si conecta sin problemas.
Por la ruta que pone debes estar usando Unix o Linux. Comprueba que el archivo mysqld. Sock existe en esa ruta y tiene permisos.
También puedes comprobar que el servicio (demonio en linux) de mysql arranca correctamente.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas