Foros del Web » Programando para Internet » PHP »

Problema para crear zona de comentarios php

Estas en el tema de Problema para crear zona de comentarios php en el foro de PHP en Foros del Web. Muy buenas. Nuevamente acudo a vosotros para que me echeis un cable. Tengo en la web una zona de comentarios, que una vez enviados a ...
  #1 (permalink)  
Antiguo 20/01/2014, 12:43
Avatar de paxarin  
Fecha de Ingreso: enero-2010
Ubicación: Santander
Mensajes: 413
Antigüedad: 14 años, 3 meses
Puntos: 6
Problema para crear zona de comentarios php

Muy buenas.
Nuevamente acudo a vosotros para que me echeis un cable.
Tengo en la web una zona de comentarios, que una vez enviados a la bbdd solo se muestran en dicha pagina (Como es normal)
Aqui os dejo el ejemplo.
Código PHP:
Ver original
  1. <?php
  2. include("../conexion.php");
  3. $rst_coment=mysql_query("SELECT * FROM tblcomentario WHERE tblcomentario.co_categoria = 'auxilios' AND tblcomentario.estado=1 ORDER BY fecha DESC;",$conexion);
  4. $num_registros=mysql_num_rows($rst_coment);
  5. if ($num_registros==0)
  6. {
  7.     echo "<p><span3>Se el primero en dejar un comentario</span3></p>";
  8.     mysql_close($conexion);
  9.     exit();
  10. }
  11.  
  12. ?>
  13. <div class="box">
  14.     <div class="box_cont">
  15.    <?php
  16.      while($fila = mysql_fetch_array($rst_coment)){
  17.             echo "<p>Nombre:<span6>$fila[co_nombre]</span></p>";
  18.             echo"<p>Comentario: <span6>$fila[co_comentario]</span></p>";
  19.             echo "<p>$fila[co_web]</p>";
  20.             echo"<p class='centrar'></p>";
  21.         }
  22.         mysql_free_result($rst_coment);
  23.     ?>
  24.    
  25.     </div>
  26. </div>
  27. <div id="contenido-opina">
  28.                 <h2>¿Quieres dejarnos tú opinión?</h2>
  29.                 <p>Todos los comentarios pasan a ser moderador por el administrador antes de ser publicados.</p>
  30.                 <form method="post" action="../comentario/enviar-comentario.php?categoria=auxilios" id="form-opina">
  31.                     <input type="hidden" name="ip" value="<?php echo $_SERVER["REMOTE_ADDR"]; ?>" />
  32.                     <input type="hidden" name="fecha" value="<?php echo date("d-m-Y H:i:s"); ?>" />
  33.                     <input type="text" name="nombre" id="nombre" title="El nombre debe estar formado solo por letras." maxlength="30" placeholder="Nombre" autocomplete="off" required  pattern="|^[a-zA-Z ñÑáéíóúüç]*$|" style="color: rgb(180, 177, 175);" />
  34.                    <input type="email" id="mail" title="Ejemplo: [email protected]" name="mail"  autocomplete="off" placeholder="[email protected]" pattern="^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$" maxlength="80" required  style="color: rgb(180, 177, 175);"/>
  35.                    <input type="url" name="web" id="web" title="Ejemplo: http://www.ejemplo.com" maxlength="32" placeholder="Ejemp: http://www.ejemplo.com" autocomplete="off"   pattern="(http|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])?" style="color: rgb(180, 177, 175);"/>
  36.                   <textarea id="msg" name="msg" placeholder="Escriba su comentario" required  style="color: rgb(180, 177, 175);"></textarea>
  37.                     <input type="submit" value="" >
  38.                 </form>
  39.             </div>
En este por ejemplo para que se muestre solo en esa pagina cuando lo envio lo mando así ../comentario/enviar-comentario.php?categoria=auxilios" (Que no se si sera la manera correcta o más facil de hacerlo para así lo hice y así funciona.)
El tema es que ahora tengo unas subpáginas que quiero que tengan sú zona de comentarios.
Las subpaginas las almaceno en la BBDD
Y para generarla uso este php
Código PHP:
Ver original
  1. <div id="link">
  2.      
  3.                 <?php
  4.                     $rst_pag=mysql_query("SELECT * FROM sec_aux ORDER BY Cont_titulo",$conexion);
  5.                     $num_registros=mysql_num_rows($rst_pag);
  6.                     if ($num_registros==0)
  7.                     {
  8.                             echo "<p class='aviso'>No existen enlaces para mostrarte</p>";
  9.                             mysql_close($conexion);
  10.                             exit();
  11.                     }
  12.                      while ($row=mysql_fetch_assoc($rst_pag))
  13.                                 {
  14.                                     ?>
  15.                                     <a href="../auxilios/auxilios_int.php?id=<?php echo $row ["id_sec"];?>"><?php echo $row ["link"];?></a>
  16.                                     <?php
  17.                                 }
  18.                 ?>
  19.             </div>
Gracias a la id_sec vuelco la información de la subpagina.
Pero la pregunta del millón es:
Ya que son dos tablas distintas (Para la zona de comentarios es tblcomentario y para la zona de la bbdd donde se almacenan la información de las páginas es sec_aux)
Que deberia de hacer? Crear una nueva tabla para estas zonas de comentarios?
Y la otra pregunta.
Supongo que deberia de hacer uso de variables en la cual almacenar por ejemplo la Id de la pagina desde la que se envia el comentario, pero como se hace eso para insertarlo en la tabla de la bbdd?
Espero que alguien puede explicarme esto.
Un saludo y gracias por estar hay!!
__________________
http://www.paxarindesign.es
  #2 (permalink)  
Antiguo 20/01/2014, 16:45
Avatar de guardarmicorreo  
Fecha de Ingreso: noviembre-2012
Ubicación: Córdoba
Mensajes: 1.153
Antigüedad: 11 años, 5 meses
Puntos: 84
Respuesta: Problema para crear zona de comentarios php

No he mirado tu código.

Pero lo que preguntas creo que es por un mal diseño en tu BD.

Pienso que la clave está en la siguiente pregunta:

¿Cuántos niveles de categorías y respectivos comentarios quieres soportar?

Imagina que tienes dos niveles. En el primer nivel tienes:

En la tabla: category_1

-Cocina.

y

-Deporte.



Imagina que cada nivel genérico admite comentarios, entonces para eso tienes que crear una tabla hija relacionada a la padre:

coments_category_1

Ahora dentro de cocina tienes:

En la tabla: category_2

-food_spanish (otra tabla hija para comentarios a esta generalidad)

Y otra tabla hija a food_spanish para recetas españolas que a su vez tiene otra tabla hija para comentarios a cada receta española.

Pienso que ese sería un buen diseño para lo que necesitas.

Permite asignar a cada categoría todas las sub-categorías que quieras con sus respectivos comentarios y dentro de estas sub-categorías puedes tener contenido que no necesariamente tiene que ser otra sub-categoría, por ejemplo, dentro de category_2 podrías tener notas, versiones, mensajes, lo que quieras, cuyo contenido esté en otra tabla hija.

De manera que si el admin quiere crear o borrar categorías o contenidos específicos tenga que crear o borrar tablas padre e hijas o entradas para mantener una buena coherencia/persistencia de datos en la BD y no tenga información que se quede suelta sin saber de dónde vino.

Puede que me equivoque, pero así lo veo yo.
__________________
Ayúdame a hacerlo por mi mismo.
  #3 (permalink)  
Antiguo 20/01/2014, 22:57
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: Problema para crear zona de comentarios php

Hola:

He redactado una serie de apuntes sobre mi sistema de comentarios: Sistema de comentarios paso a paso, donde explico cómo uso el sistema en distintos elementos del dominio... Si el sistema es común, o sea, con los mismos campos y controles, simplemente debes añadir un campo para discriminar las páginas, y crearte un ficherito con el formulario para insertarlo con un include, y otro ficherito para el listado... y la sentencia sql simplemente añadirle una sentencia where...

"select * from comentarios where pagina='$pagina'"

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo

Etiquetas: comentarios, fecha, mysql, registro, select, sql, tabla, variable
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:14.