Foros del Web » Programando para Internet » PHP »

Mensajes con comentarios

Estas en el tema de Mensajes con comentarios en el foro de PHP en Foros del Web. Hola quiero crear un sistema en el que en una noticia publicada la gente pueda dejar sus comentarios. Vamos como se ve en un millon ...
  #1 (permalink)  
Antiguo 20/07/2006, 10:12
Avatar de kennyhp  
Fecha de Ingreso: julio-2006
Mensajes: 370
Antigüedad: 17 años, 8 meses
Puntos: 5
Mensajes con comentarios

Hola quiero crear un sistema en el que en una noticia publicada la gente pueda dejar sus comentarios. Vamos como se ve en un millon de blogs y demas páginas de noticias.
Habia pensado en crear una tabla llamada comentarios y que de alguna forma este enlazada con la de noticias, pero no se como hacerlo ni a nivel PHP ni de BD.
Estoy empezando con PHP pero tengo bastantes conocimientos de C así que entiendo bastante bien los códigos que leo ya que son parecidos, pero no se como plantear la situación.

Gracias de antemano y un saludo.
  #2 (permalink)  
Antiguo 20/07/2006, 10:32
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 2 meses
Puntos: 129
Cita:
Habia pensado en crear una tabla llamada comentarios y que de alguna forma este enlazada con la de noticias, pero no se como hacerlo ni a nivel PHP ni de BD.
Esa forma se denomina en Base de datos "establecer una integridad referencial" .. o definir una "clave foránea" (FK)

Tu tabla de comentarios se relaciona en realación 1 -> N (una noticia -> N comentarios) por su campo que lo define como tal:

tabla comentarios

id_comentario
id_noticia <-- FK
comentario
fecha
blablalba

Y tu tabla de noticias ..

id_noticia
noticia
fecha
blbalabla

Las relaciones a la hora de obtener los "comentarios" de tal noticia se harán bajo ese ID_noticia en consultas SQL tipo: (el ejemplo sería para obtener todas las noticias y sus comentarios).

Código PHP:
SELECT noticias.*,comentarios.* FROM noticiascomentarios WHRE noticias.id_noticia comentarios.id_comentarios 
(o algo mejor elaboradas usando INNERT JOIN, LEFT JOIN .. etc ...)

Si vas a los comentarios de una noticia sólo la consulta SQL se simplifica:

Código PHP:
$sql="SELECT * FROM comentarios, noticias WHERE comentarios.id_noticia='".$_GET['id_noticia']."'"
(donde $id_noticia sería la noticia que estás viendo que ya obtuvistes y le pasas a este script tipo link: ver_noticia.php?id_noticia=1 ..)

Te recomiendo que leas sobre diseño de base de datos, normalización e integridad referencial. Esto lo peudes ver si usas Mysql o como conceptos en los tutoriales de:

www.mysql-hispano.com

Recuerda que no sólo programas en "PHP" también trabajas con "Base de datos" y estas tienen sus própías normas y teorías además de "lenguaje": el SQL (Lenguaje estructurado de consultas).

PHP sólo te permite "enviar" a ejecutar consultas SQL y obtener sus resultados.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 20/07/2006, 10:49
Avatar de kennyhp  
Fecha de Ingreso: julio-2006
Mensajes: 370
Antigüedad: 17 años, 8 meses
Puntos: 5
Ok, la verdad es que no sabia muy bien como plantear la pregunta para que se entendiese, pero la respuesta que me has dado es justo lo k buscaba!!! jejeje mientras esperaba una repuesta ojeaba el foro y he leido una entrevista a ti y veo que tienen razón ;) Gracias!!!!
  #4 (permalink)  
Antiguo 20/07/2006, 10:54
Avatar de kennyhp  
Fecha de Ingreso: julio-2006
Mensajes: 370
Antigüedad: 17 años, 8 meses
Puntos: 5
Por cierto:
'".$_GET['id_noticia']."'";
No entiendo esto muy bien... por que el ."'" ???
y que es _GET??? he leido por ahi algo de sesiones...

Un saludo.
  #5 (permalink)  
Antiguo 20/07/2006, 11:05
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 2 meses
Puntos: 129
Cita:
".$_GET['id_noticia']."'";
No entiendo esto muy bien... por que el ."'" ???
Sacastes mucho fuera de contexto el código .. pero supongo que te haces referencia a que no sabes que es el término "concatenación" (aplicado a PHP) y de que caracter se usa para tal fin (el punto .).

Bueno, con el "punto" es como se "concatenan" (unen) strings (variables) de cualquier tipo.

Ese ."'" es por qué el SQL así lo requiere en ese caso .. (si le haces un echo a $sql lo veras) .. requier que el "dato" esté entre comillas .. por eso es necesario pero justo cae en ese caso al final de la cadena .. por eso parece "raro" pero es así.

Te recomiendo la lectura del manual oficial de PHP sobre ese tema concreto:
http://www.php.net/manual/es/languag...ors.string.php


Cita:
y que es _GET??? he leido por ahi algo de sesiones...
No, _GET no son sesiones .. son "arrays superglobales". En PHP toda variable que entra a un script en forma externa (que no la generó el flujo y lógica de tu código) llega por el método que se envió en el array asociado, ya sea en GET o en POST o una COOKIE o una SESSION .. o una variable de servidor SERVER .. etc.

Revisa la documentación de PHP al respecto:
http://www.php.net/manual/es/languag...s.external.php


Tienes también las FAQ's de este foro para que las veas, se detalla el "por qué" usar estas variables (arrays superglobales) y no sus $variable_externa en forma "global".

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
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 17:17.