Foros del Web » Programando para Internet » PHP »

Sistema de comentario con BD MySql

Estas en el tema de Sistema de comentario con BD MySql en el foro de PHP en Foros del Web. Hola, andaba necesitando crear un sistema de comentarios con mi base de datos en Mysql, sencillo, pero que funcione. Quiero para simplificar el proceso de ...
  #1 (permalink)  
Antiguo 09/01/2007, 18:35
 
Fecha de Ingreso: septiembre-2006
Ubicación: Buenos Aires
Mensajes: 53
Antigüedad: 17 años, 7 meses
Puntos: 0
Pregunta Sistema de comentario con BD MySql

Hola, andaba necesitando crear un sistema de comentarios con mi base de datos en Mysql, sencillo, pero que funcione. Quiero para simplificar el proceso de reconocimiento de los comentarios a la pagina que correspondan cada uno, yo especifique en cada pagina en donde quiero que se comente sobre algo diferente segun cual sea ésta y el tema que trate, el id del cometario en cada pagina, digo, por ejemplo pagina 1 $id=1 pagina 2 $id=2, etc. nose si me explico bien. Si no se puede esta parte bue, no importa, pero necesito una sistema sin errores por favor y con explicacion sencilla si es posible, se los voy agradecer mucho y seguro que no solo yo.
Y por favor no me manden el tutorial de Maestrosdelweb o de las otras paginas cuyo tutorial es el mismo y con la misma explicacion que ya probe y solo me dio como resultado errores y más erreres en la pantalla.
Por favor posteen el codigo para crear la tabla, otro para el formulario y la parte de donde muesta los comentario, y por ultimo el archivo php que se encarge del proceso. Desde ya muchas gracias por su tiempo.
  #2 (permalink)  
Antiguo 09/01/2007, 19:13
 
Fecha de Ingreso: julio-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 1.304
Antigüedad: 18 años, 9 meses
Puntos: 6
Re: Sistema de comentario con BD MySql

¿Y por que mejor no planteas tus dudas?

A veces no se obtienen buenos resultados al pedir algo hecho y terminado, y no solo eso, explicado. Por ahi te conviene plantear tus dudas y siempre encontraras alguien que te ayude poco a poco, si tu colaboras, claro.

Suerte.
__________________
Federico.

Mi página: www.jourmoly.com.ar
  #3 (permalink)  
Antiguo 10/01/2007, 20:44
 
Fecha de Ingreso: septiembre-2006
Ubicación: Buenos Aires
Mensajes: 53
Antigüedad: 17 años, 7 meses
Puntos: 0
Re: Sistema de comentario con BD MySql

Bueno, vamos a probar, este es el archivo nuevoComentario.php del tutorial de Maestrosdelweb. Trate de buscarle errores, pero la verdad es que mi conocimiento de php es aún muy basico. Sabrían cual es el error de este codigo, ya que no me anda, me tira el siguiente error:
Parse error: parse error, unexpected T_STRING, expecting ',' or ';' in /home/www/xxxxxxxxxxxxxx/nuevoComentario.php on line 36
Tal vez me equivoque en algo o me falte algo, la verdad nose, pero si alguien sabe se lo agradeceria que me lo dijiera.

nuevoComentario.php
Cita:
<?php //AQUI CONEXION O include() DE ARCHIVO DE CONEXION CON BASE DE DATOS.
//conexion MySQL

$host="localhost";
$user="usuario";
$pass="123456";
$db="labase";
//Conectamos a la base de datos
$link = mysql_connect ($host, $user, $pass);
mysql_select_db($db, $link);


if(isset($HTTP_POST_VARS["id"]) && isset($HTTP_POST_VARS["nick"]) && isset($HTTP_POST_VARS["comentario"]))
{
if($HTTP_POST_VARS["comentario"] != "")
{
if($HTTP_POST_VARS["nick"] == "")
{
$nickNuevo = "anonimo";
}
else
{
$nickNuevo = $HTTP_POST_VARS["nick"];
}
$resultCom2 = mysql_query("SELECT id FROM comentarios ORDER BY id DESC LIMIT 0,1");
$rowCom2 = mysql_fetch_array($resultCom2);
$con = $rowCom2["id"];
mysql_free_result($resultCom2);

$con++;
$idNoticia = $HTTP_POST_VARS["id"];
$comentarioNoticia = $HTTP_POST_VARS["comentario"];
mysql_query("INSERT INTO comentarios VALUES
('$con','$idNoticia','$nickNuevo','$comentarioNo ticia')");

echo 'Comentario Enviado Con Exito.<BR>Espere Unos Segundos...<SCRIPT LANGUAGE="javascript">window.location.href = "".getenv('HTTP_REFERER')."";</SCRIPT>';
}
else
{
echo "Debe Introducir Un Comentario.";
}
}

?>
Ah y este es el codigo para noticia.php que tambien me tira errores de entrada.


Cita:
<CENTER>
<SPAN STYLE="font-size:11px;font-family:Tahoma;color:black;font-weight:bold">
.Enviar Comentario.
</SPAN>
</CENTER>
<p>
<FORM NAME="miFormu" ACTION="nuevoComentario.php"
METHOD="post">
<INPUT TYPE="hidden" NAME="id" VALUE="<?
echo $id; ?>">
Nick : <INPUT TYPE="text" NAME="nick" SIZE=20 MAXLENGTH=20>
<BR>
Comentario: <INPUT TYPE="text" NAME="comentario"
SIZE=28 MAXLENGTH=250>
<BR>
<INPUT TYPE="submit" CLASS="boton" VALUE="Enviar
Comentario">
</FORM>
<CENTER>
<TABLE CELLSPACING=1 CELLPADDING=1 WIDTH=300 BORDER=0 STYLE="border:1px solid black">
<TR>
<TD BGCOLOR="#FAFAFA">
<CENTER>
<SPAN STYLE="font-size:11px;font-family:Tahoma;color:black;font-weight:bold"> .Comentarios De Los Usuarios.
</SPAN>
</CENTER>
</TD>
</TR>

<TR>
<TD HEIGHT=1 BGCOLOR=black>
</TD>
</TR>

<TR>
<TD BGCOLOR="#FEFEFE">
<SPAN STYLE="font-size:11px;font-family:Tahoma;color:black;">

<?
$resultComen = mysql_query("SELECT * FROM comentarios WHERE id_noticia='$id' ORDER BY id ASC");
while($rowComen = mysql_fetch_array($resultComen))
{
?> ;
<FONT COLOR=RED>
<B><? echo $rowComen["nick"]; ?></B>
</FONT>
:
<? echo $rowComen["comentario"]; ?>
<BR>
<?
}
mysql_free_result($resultComen);
?>

</SPAN>
</TD>
</TR>
</TABLE>
</CENTER>
En sintesis, busco sus errores.
  #4 (permalink)  
Antiguo 11/01/2007, 05:23
 
Fecha de Ingreso: julio-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 1.304
Antigüedad: 18 años, 9 meses
Puntos: 6
Re: Sistema de comentario con BD MySql

Cuando te aparecen errores que no sabes que son, deci cual es el error (como lo dijiste en el primer caso) y marca en el codigo o por lo menos indica claramente cual es la linea del error. ¿Cual es la linea 36 del primer codigo? ¿Cual es el error de noticia.php? ¿En que linea?

Quiza venga alguien mas y te diga donde está, pero la idea es qu efacilites a quienes te quieren ayudar la mayor cantidad de información posible... creeme, recibiras mejores respuestas.. (que esta seguro)

Saludos.
__________________
Federico.

Mi página: www.jourmoly.com.ar
  #5 (permalink)  
Antiguo 11/01/2007, 15:02
 
Fecha de Ingreso: septiembre-2006
Ubicación: Buenos Aires
Mensajes: 53
Antigüedad: 17 años, 7 meses
Puntos: 0
Re: Sistema de comentario con BD MySql

El primer error que comente es tal cual aparece en el archivo nuevocomentario.php cuando quiero probar enviar un comentario.
Con respecto a los errores que aparecen en el archivo noticia.php son los siguientes:

Warning: mysql_query(): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) in /home/www/xxxxxxxxxxx/noticia.php on line 84

Warning: mysql_query(): A link to the server could not be established in /home/www/xxxxxxxxxxxxxx/noticia.php on line 84

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/www/xxxxxxxxxxxxx/noticia.php on line 85

Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in /home/www/xxxxxxxxxxxxxx/noticia.php on line 96

Estos errores aparecen en la parte donde supuestamente deberia mostrar los comentarios anteriormete enviados por otros.
Si de esto pueden sacar algo, joya. Sinó pregunten más detalles, a ver si me pueden ayudar a encontrar esos errores o faltantes.



Otra cosa, la idea de que posteen un sistema ya echo, era con la intencion de ayudar tambíen a las demas personas que ingresan a este foro queriendo hacer lo mismo, en cambio si yo pergunto solo por mi duda, este tema, sería solo de ayuda para mí, o a lo sumo, otra persona con en mismo problema.
  #6 (permalink)  
Antiguo 14/01/2007, 18:53
 
Fecha de Ingreso: septiembre-2006
Ubicación: Buenos Aires
Mensajes: 53
Antigüedad: 17 años, 7 meses
Puntos: 0
Re: Sistema de comentario con BD MySql

Y?? ninguna idea??
  #7 (permalink)  
Antiguo 14/01/2007, 21:54
Avatar de mauricio2004  
Fecha de Ingreso: marzo-2004
Mensajes: 264
Antigüedad: 20 años, 1 mes
Puntos: 0
Re: Sistema de comentario con BD MySql

Warning: mysql_query(): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) in /home/www/xxxxxxxxxxx/noticia.php on line 84
el primer error que sale es de la base de datos. La conexion a la base no se esta realizando por algun de usuario, contraseña o direccion debes chequiar bien eso..

ahora este error es por que al parecer te falta un ;

Parse error: parse error, unexpected T_STRING, expecting ',' or ';' in /home/www/xxxxxxxxxxxxxx/nuevoComentario.php on line 36


jejeje
  #8 (permalink)  
Antiguo 15/01/2007, 22:14
 
Fecha de Ingreso: septiembre-2006
Ubicación: Buenos Aires
Mensajes: 53
Antigüedad: 17 años, 7 meses
Puntos: 0
Re: Sistema de comentario con BD MySql

Ya encontre cual eran los problemas, nose como no me di cuenta antes, eran tan sencillos.
Con respecto a noticia.php tenias razón, me había olvidado de incluir la conexion con la base de datos en este archivo.
Y sobre el error que me tiraba en el archivo nuevoComentario.php en la linea 36 es por el script de HTTP_REFERER que por los caracteres que posee "" no tomaba bien el echo, la verdad que esta parte no se me ocurrio bien como solucionarlo, asi que lo reemplase por un link que me lleve de vuelta a la pagina de noticia.php. Y bueno otros detalles como palabras separadas.

Por si a alguien le interesa les dejo el codigo de los archivos según mis pequeñas correcciones. Lo que importa es que ahora por lo menos a mi me funciono. Si alguno de ustedes lo piensa usar ya mas que obvio saben que lo puede mejorar a su manera. asi que no juzguen mis correcciones.

Primero la tabla de la base de datos:

CREATE TABLE comentarios (
id bigint(7) default NULL,
id_noticia bigint(7) default NULL,
nick char(20) default NULL,
comentario char(250) default NULL,
KEY id (id) )


noticia.php :

Código PHP:
<html>
<head>
<title>Comentarios</title></head>
<body>

<CENTER> 
<SPAN STYLE="font-size:11px;font-family:Tahoma;color:black;font-weight:bold"> 
.Enviar Comentario. 
</SPAN> 
</CENTER> 
<p> 
<FORM NAME="miFormu" ACTION="nuevoComentario.php" 
METHOD="post"> 
<INPUT TYPE="hidden" NAME="id" VALUE="<? 
echo $id?>"> 
Nick : <INPUT TYPE="text" NAME="nick" SIZE=20 MAXLENGTH=20> 
<BR> 
Comentario: <INPUT TYPE="text" NAME="comentario" 
SIZE=28 MAXLENGTH=250> 
<BR> 
<INPUT TYPE="submit" CLASS="boton" VALUE="Enviar 
Comentario"> 
</FORM>
<CENTER>
<TABLE CELLSPACING=1 CELLPADDING=1 WIDTH=300 BORDER=0 STYLE="border:1px solid black">
<TR>
<TD BGCOLOR="#FAFAFA">
<CENTER>
<SPAN STYLE="font-size:11px;font-family:Tahoma;color:black;font-weight:bold"> .Comentarios De Los Usuarios.
</SPAN>
</CENTER>
</TD>
</TR>

<TR>
<TD HEIGHT=1 BGCOLOR=black>
</TD>
</TR>

<TR>
<TD BGCOLOR="#FEFEFE">
<SPAN STYLE="font-size:11px;font-family:Tahoma;color:black;">

<? 
$dbhost
="localhost";  // host del MySQL (generalmente localhost)
$dbusuario="usuario"// aqui debes ingresar el nombre de usuario
                      // para acceder a la base
$dbpassword="contraseña"// password de acceso para el usuario de la
                      // linea anterior
$db="mi base";        // Seleccionamos la base con la cual trabajar
$conexion mysql_connect($dbhost$dbusuario$dbpassword);
mysql_select_db($db$conexion);

$resultComen mysql_query("SELECT * FROM comentarios WHERE id_noticia='$id' ORDER BY id ASC");
while(
$rowComen mysql_fetch_array($resultComen))
{
?> ;
<FONT COLOR=RED>
<B><? echo $rowComen["nick"]; ?></B>
</FONT>
:
<? echo $rowComen["comentario"]; ?>
<BR>
<?
}
mysql_free_result($resultComen);
?>

</SPAN>
</TD>
</TR>
</TABLE>
</CENTER>
</body>
</html>
Y el archivo nuevoComentario.php

Código PHP:
<?php  
//conexion MySQL

$host="localhost";
$user="usuario";
$pass="contrasema";
$db="mi base";
//Conectamos a la base de datos
$link mysql_connect ($host$user$pass);
mysql_select_db($db$link); 


if(isset(
$HTTP_POST_VARS["id"]) && isset($HTTP_POST_VARS["nick"]) && isset($HTTP_POST_VARS["comentario"])) 

if(
$HTTP_POST_VARS["comentario"] != ""

if(
$HTTP_POST_VARS["nick"] == ""

$nickNuevo "anonimo"

else 

$nickNuevo $HTTP_POST_VARS["nick"]; 

$resultCom2 mysql_query("SELECT id FROM comentarios ORDER BY id DESC LIMIT 0,1"); 
$rowCom2 mysql_fetch_array($resultCom2); 
$con $rowCom2["id"]; 
mysql_free_result($resultCom2); 

$con++; 
$idNoticia $HTTP_POST_VARS["id"]; 
$comentarioNoticia $HTTP_POST_VARS["comentario"]; 
mysql_query("INSERT INTO comentarios VALUES 
('$con','$idNoticia','$nickNuevo','$comentarioNoticia')"
); 

echo 
"Comentario Enviado Con Exito.<a href=noticia.php>Volver</a>"

else 

echo 
"Debe Introducir Un Comentario."

}

?>

Última edición por aenet; 16/01/2007 a las 15:29
  #9 (permalink)  
Antiguo 23/12/2007, 03:07
 
Fecha de Ingreso: noviembre-2007
Mensajes: 23
Antigüedad: 16 años, 4 meses
Puntos: 0
Re: Sistema de comentario con BD MySql

Cita:
Iniciado por aenet Ver Mensaje
Ya encontre cual eran los problemas, nose como no me di cuenta antes, eran tan sencillos.
Con respecto a noticia.php tenias razón, me había olvidado de incluir la conexion con la base de datos en este archivo.
Y sobre el error que me tiraba en el archivo nuevoComentario.php en la linea 36 es por el script de HTTP_REFERER que por los caracteres que posee "" no tomaba bien el echo, la verdad que esta parte no se me ocurrio bien como solucionarlo, asi que lo reemplase por un link que me lleve de vuelta a la pagina de noticia.php. Y bueno otros detalles como palabras separadas.

Por si a alguien le interesa les dejo el codigo de los archivos según mis pequeñas correcciones. Lo que importa es que ahora por lo menos a mi me funciono. Si alguno de ustedes lo piensa usar ya mas que obvio saben que lo puede mejorar a su manera. asi que no juzguen mis correcciones.

Primero la tabla de la base de datos:

CREATE TABLE comentarios (
id bigint(7) default NULL,
id_noticia bigint(7) default NULL,
nick char(20) default NULL,
comentario char(250) default NULL,
KEY id (id) )


noticia.php :

Código PHP:
<html>
<head>
<title>Comentarios</title></head>
<body>

<CENTER> 
<SPAN STYLE="font-size:11px;font-family:Tahoma;color:black;font-weight:bold"> 
.Enviar Comentario. 
</SPAN> 
</CENTER> 
<p> 
<FORM NAME="miFormu" ACTION="nuevoComentario.php" 
METHOD="post"> 
<INPUT TYPE="hidden" NAME="id" VALUE="<? 
echo $id?>"> 
Nick : <INPUT TYPE="text" NAME="nick" SIZE=20 MAXLENGTH=20> 
<BR> 
Comentario: <INPUT TYPE="text" NAME="comentario" 
SIZE=28 MAXLENGTH=250> 
<BR> 
<INPUT TYPE="submit" CLASS="boton" VALUE="Enviar 
Comentario"> 
</FORM>
<CENTER>
<TABLE CELLSPACING=1 CELLPADDING=1 WIDTH=300 BORDER=0 STYLE="border:1px solid black">
<TR>
<TD BGCOLOR="#FAFAFA">
<CENTER>
<SPAN STYLE="font-size:11px;font-family:Tahoma;color:black;font-weight:bold"> .Comentarios De Los Usuarios.
</SPAN>
</CENTER>
</TD>
</TR>

<TR>
<TD HEIGHT=1 BGCOLOR=black>
</TD>
</TR>

<TR>
<TD BGCOLOR="#FEFEFE">
<SPAN STYLE="font-size:11px;font-family:Tahoma;color:black;">

<? 
$dbhost
="localhost";  // host del MySQL (generalmente localhost)
$dbusuario="usuario"// aqui debes ingresar el nombre de usuario
                      // para acceder a la base
$dbpassword="contraseña"// password de acceso para el usuario de la
                      // linea anterior
$db="mi base";        // Seleccionamos la base con la cual trabajar
$conexion mysql_connect($dbhost$dbusuario$dbpassword);
mysql_select_db($db$conexion);

$resultComen mysql_query("SELECT * FROM comentarios WHERE id_noticia='$id' ORDER BY id ASC");
while(
$rowComen mysql_fetch_array($resultComen))
{
?> ;
<FONT COLOR=RED>
<B><? echo $rowComen["nick"]; ?></B>
</FONT>
:
<? echo $rowComen["comentario"]; ?>
<BR>
<?
}
mysql_free_result($resultComen);
?>

</SPAN>
</TD>
</TR>
</TABLE>
</CENTER>
</body>
</html>
Y el archivo nuevoComentario.php

Código PHP:
<?php  
//conexion MySQL

$host="localhost";
$user="usuario";
$pass="contrasema";
$db="mi base";
//Conectamos a la base de datos
$link mysql_connect ($host$user$pass);
mysql_select_db($db$link); 


if(isset(
$HTTP_POST_VARS["id"]) && isset($HTTP_POST_VARS["nick"]) && isset($HTTP_POST_VARS["comentario"])) 

if(
$HTTP_POST_VARS["comentario"] != ""

if(
$HTTP_POST_VARS["nick"] == ""

$nickNuevo "anonimo"

else 

$nickNuevo $HTTP_POST_VARS["nick"]; 

$resultCom2 mysql_query("SELECT id FROM comentarios ORDER BY id DESC LIMIT 0,1"); 
$rowCom2 mysql_fetch_array($resultCom2); 
$con $rowCom2["id"]; 
mysql_free_result($resultCom2); 

$con++; 
$idNoticia $HTTP_POST_VARS["id"]; 
$comentarioNoticia $HTTP_POST_VARS["comentario"]; 
mysql_query("INSERT INTO comentarios VALUES 
('$con','$idNoticia','$nickNuevo','$comentarioNoticia')"
); 

echo 
"Comentario Enviado Con Exito.<a href=noticia.php>Volver</a>"

else 

echo 
"Debe Introducir Un Comentario."

}

?>
Muy bueno muchas gracias me ha servido el codigo pero una pregunta.. como puedo hacer para que no me abra otro archivo osea en vez de que se abra en comentarioNuevo.php se abra el mensaje de exito en el mismo archivo noticia.php alguien sabe como??

Saludos y Gracias :D
  #10 (permalink)  
Antiguo 02/01/2008, 19:38
 
Fecha de Ingreso: enero-2008
Mensajes: 1
Antigüedad: 16 años, 3 meses
Puntos: 0
Re: Sistema de comentario con BD MySql

Muy buen aporte compañero..no sabes como he estado buscando el codigo correcto para ir checando de otros ejemplos en PHP sobre SISTEMAS DE NOTICIAS EN PHP yo habia estado corrigiendo varios pero nada.. Con esto que aportaste es algo que me servira muchisimo man.

espero que despues pueda anexarte en mi MSN para poder intercambiar cosas.. yo tambien soy principiante en programacion PHP.

te mando mi correo para ver si me añades: [email protected]
también te mando mi WEB: krizalid80.webspacemania.com
si te conectas ahi me dices para que te de alta en mi servidor FTP: ftp://krizalid80.serveftp.com

atte. krizalid80
  #11 (permalink)  
Antiguo 05/01/2008, 14:58
Avatar de ceaped  
Fecha de Ingreso: febrero-2004
Mensajes: 2.185
Antigüedad: 20 años, 2 meses
Puntos: 9
Re: Sistema de comentario con BD MySql

Yo tambien estaba pegado con un sistema de comentarios y con este resoví mi problema.
Ahora a la pregunta de "ElMateria", aquí le dejo la forma para que no tenga que poner el enlace de volver sino que se devuelva automaticamente:

Cita:
echo "Comentario Enviado Con Exito.<BR>Espere Unos Segundos...
<SCRIPT LANGUAGE='JavaScript'>window.location.href= \"".getenv('HTTP_REFERER')."\";</SCRIPT>";
}
Tengo una pregunta no se si se de con php o javascript, pero ahí va si saben como hacerlo:

Como oculto un campo del formulario y que no se imprima (se visualice) en la página noticias.php sino sólo en la BD?

Mucha suerte para todos...
__________________
Diseñador Gráfico publicitario
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 02:33.