Foros del Web » Programando para Internet » PHP »

sistema de comentarios

Estas en el tema de sistema de comentarios en el foro de PHP en Foros del Web. Hola tengo un sistema de comentarios en mi pagina web lo que quiero hacer es que cuando un usario entre a alguna noticia pueda dejar ...
  #1 (permalink)  
Antiguo 14/07/2008, 12:36
 
Fecha de Ingreso: junio-2008
Mensajes: 52
Antigüedad: 15 años, 9 meses
Puntos: 0
sistema de comentarios

Hola tengo un sistema de comentarios en mi pagina web lo que quiero hacer es que cuando un usario entre a alguna noticia pueda dejar comentarios de la noticia. eso me funciona correctamente. el problema es que no se como hacer que solo se visualicen los comentarios de esa noticia se ven todos los comentarios de todas las noticias que estan en la base de datos como puedo hacer que se vean solo los comentarios de esa noticia. gracias
  #2 (permalink)  
Antiguo 14/07/2008, 12:38
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: sistema de comentarios

Hola betoo20,

Si muestras tu código te podremos ayudar más puntualmente, pero tu problema es en sí porque te falta agregarle la clausula WHERE a tu consulta SQL.

Saludos.
  #3 (permalink)  
Antiguo 14/07/2008, 12:55
Avatar de polin2bclan  
Fecha de Ingreso: julio-2008
Mensajes: 73
Antigüedad: 15 años, 8 meses
Puntos: 5
Respuesta: sistema de comentarios

Amigo, lo que debes es asignar a cada comentario un id de cada noticia, ejemplo, la noticia 2 el id es dos y a la hora de meter un comentario en la noticia 2 debera guardar en un campo id_noti el valor 2 para que cuando mandes a mostrar los comentarios de la noticia 2 la consulta use el campo id_noti para mostrar el contenido.

A como dice GatorV

Puedes usarlo así

Código PHP:
SELECT FROM tabla WHERE id_noti='$id_noti' 
--------------------------------------------------------------------------
Aquí te dejo a como lo uso yo:

Código PHP:
<div align="left">
  <?php
$this_file 
"galeria.php?galeria=$id_gal&foto=$id_pic";
if (!isset(
$PHP_SELF) || $PHP_SELF == "") { $PHP_SELF $this_file; }
if (isset(
$_POST['txtnick'])) { $txtnick $_POST['txtnick'] ; }
if (isset(
$_POST['txtname'])) { $txtname $_POST['txtname'] ; }
if (isset(
$_POST['txtcoment'])) { $txtcoment $_POST['txtcoment'] ; }
if(
$_REQUEST[txtprecionarme]){
if(
$txtname=="" or $txtcoment==""){
echo 
"<div align=\"center\"><strong>Error:</strong> Rellene todos los campos</span></div>";
}
else {
mysql_query("INSERT into polin_comentarios_galerias (nick,nombre,comentarios) VALUES ('$txtnick','$txtname','$txtcoment')") or die (mysql_error());
}
}
?>
  <?php
$nickuser
="nick";
$consulta=mysql_query("SELECT * FROM polin_comentarios_galerias WHERE nick='$id_gal' order by id DESC") or die (mysql_error());
while(
$sql=mysql_fetch_array($consulta)) {
$n_coment=$sql[nombre];
$c_coment=$sql[comentarios];
$nombre substr($n_coment0100);
$comentariossubstr($c_coment0,2000);
echo 
"<span class=\"colordeltextodelcomentario\">$nombre:</span> $comentarios<br><br>";
 }
 
?>
</div>
<div align="center">
<form id="form1" name="form1" method="post" action="<? echo $this_file?>">
  <label>
  <input name="txtprecionarme" type="hidden" id="txtprecionarme" value="true" />
  <input type="hidden" name="txtnick" id="txtnick" value="<? echo $id_gal?>" />
  <br />
  </label>
  <label>
  
  Nombre:        <br />
  </label>
  <input name="txtname" type="text" id="txtname" maxlength="40" />
  <br />
  Comentario:<br />
  <label>
  <textarea name="txtcoment" cols="60" id="txtcoment" onKeyUp="maximucho()"></textarea>
  </label>
  <br />
  <br />
  <label>
  <input type="submit" name="button" id="button" value="Enviar comentario" />
  </label>
  <br />
  
</form>
    </div>
Talves te funciona mi ejemplo.
  #4 (permalink)  
Antiguo 14/07/2008, 13:07
 
Fecha de Ingreso: junio-2008
Mensajes: 52
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: sistema de comentarios

Gracias GatorV

Aqui viene el formulario de poner comentarios
form.php
Código PHP:

<html>
<head><title>comiendo en morelia</title>
<link href="styles.css" rel="stylesheet" type="text/css" media="screen" />
<script src="js/prototype.js" type="text/javascript"></script>
<script src="js/scriptaculous.js?load=effects" type="text/javascript"></script>
<script language="Javascript" src="js/funciones.js"></script>
</head>
<body>
<div id="cabecera">
<div id="login">
<?php 
$id_Recordset 
"-1";
if (isset(
$_GET['id'])) {
  
$id_Recordset = (get_magic_quotes_gpc()) ? $_GET['id'] : addslashes($_GET['id']);
require_once(
'includes/log.php'); 
  
$comida mysql_connect($hostname$user$pass) or trigger_error(mysql_error(),E_USER_ERROR); 
        
mysql_select_db($dbnombre$comida);        
            
$query_Recordset sprintf("SELECT * FROM restaurante, rest_comida, comida, rest_zona,zona, rest_precio, precio WHERE rest_comida.id_comida=comida.id_comida AND rest_comida.id_restaurante=restaurante.id_restaurante AND rest_zona.id_zona=zona.id_zona AND rest_zona.id_restaurante=restaurante.id_restaurante AND rest_precio.id_precio=precio.id_precio AND rest_precio.id_restaurante=restaurante.id_restaurante AND rest_comida.id_restaurante=%s",$id_Recordset);
$Recordset mysql_query($query_Recordset$comida) or die(mysql_error());
            
$row_Recordset mysql_fetch_assoc($Recordset);
            
$totalRows_Recordset mysql_num_rows($Recordset);        

        
?>

    </div>
</div>

        <div id=principal>
                    <!-- ///////////Tipo de comida/////////////////////////////////////////////////-->

                    <div id="tipocomida">
                    <div id="lista">
                                     <h2>tipo de comida<h2>
                        <ul id="navlist">
                      <?php do { ?>
                        <li><a href="restaurantes.php?tipo=<?php echo $row_Recordset1['tipo']; ?>&numPagina="1"><?php echo $row_Recordset1['tipo']; ?></a></li>
                  
                      <?php } while ($row_Recordset1 mysql_fetch_assoc($Recordset1)); ?>
                    </ul>
                    </div>
                    </div>

                <!-- ///////////Contenido de la pagina///////////////////////////////////////////////// -->
                <div id="contenido">
                    <div id= "resto">
                        <span class="img"><img src="<?php echo $row_Recordset['fotos']; ?>" width="150px" height="150px"></img></span>
                            <ul>
                            <li>Nombre del restaurante:&nbsp; <?php echo $row_Recordset['nombre']; ?></li>
                            <li>Telefono :&nbsp; <?php echo $row_Recordset['telefono']; ?></li>
                            <li>Direccion:&nbsp;<?php echo $row_Recordset['direccion']; ?></li>
                            <li>Cp:&nbsp;<?php echo $row_Recordset['cp']; ?></li>
                            <li>tipo de comida:&nbsp;<?php echo $row_Recordset['tipo']; ?> </li>
                            <li>zona:&nbsp;<?php echo $row_Recordset['zona']; ?></li>
                            <li>precio:&nbsp;<?php echo $row_Recordset['precio']; ?></li>
                            <li>web:&nbsp;<a href="http://<?php echo $row_Recordset['pagina']; ?>">><?php echo $row_Recordset['pagina']; ?></a></li>
                            </ul><?php if ($row_Recordset['reserva']==="http://www.forosdelweb.com/images/reserva.png"){ ?>
                            <a href="#"><img class="reserva" src="<?php echo $row_Recordset['reserva']; ?>"></a></img>
                            <?php ?>


                            <br /><br />
                            <ul class="descrip"><li>DESCRIPCION</li></ul><p><?php echo $row_Recordset['descripcion']; ?></p><br /><br />
                            <?php require_once('includes/mapas.js'); ?>
                           
                            <div id="comentarios" onLoad="mostrarComentarios();>    
                                <?php if($rango == 'Administrador') {  ?> 
                                <div align="left" style="font-size:9px"><a href="reset.php">reset</a></div>
                                <?php ?>
                                <div align="left" style="font-size:9px"><a href="#" onClick="postearOK();">mostrar comentarios</a></div>
                                <div id="comtitulo">Deja tu comentario!</div>
                                <div id="form">
                                <form  name="form">
                                Tu nombre:<br>
                                <input type="text" name="nombre"><br>
                                Website:<br>
                                <input type="text" name="web"><br>
                                Tu comentario:<br>
                                <textarea name="texto" cols="30" rows="7"></textarea><br />

                                <input type="button" onClick="postear();" value="Comentar!"> <span id="postearLoading"></span>
                                </form>
                                </div>
                            </div>

                                <div  id="comentariosContenedor">
                                    <div  id="comentariosContenedorLoading">    </div>
                                </div>
                    </div>
 

                </div>
</div>
</body>
</html>
estas son las funciones javascript
javascript.js

Código PHP:
function mostrarComentarios(){
    
    
url 'comentarios.php';
    
    var 
peticion = new Ajax.Request(
        
url,
        {
        
method'get',
        
onLoadingmostrarComentariosLoading,
        
onCompletemostrarComentariosOk
        
}
    );
}

function 
mostrarComentariosLoading(respuesta){
    $(
'comentariosContenedorLoading').innerHTML "<br><br><br><img src='loader.gif' /><br><br><br>";
}

function 
mostrarComentariosOk(respuesta){
    $(
'comentariosContenedor').innerHTML respuesta.responseText;
    $(
'postearLoading').innerHTML "";
    
document.form.nombre.value "";
    
document.form.web.value "";
    
document.form.texto.value "";
}


function 
postear(){
    
url 'postear.php';

    var 
nombre document.form.nombre.value;
    var 
web document.form.web.value;
    var 
texto document.form.texto.value;
    
    
    var 
parametros "nombre="+nombre+"&web="+web+"&texto="+texto;

    var 
peticion = new Ajax.Request(
        
url,
        {
        
method'post',
        
parametersparametros,
        
onLoadingpostearLoading,
        
onCompletepostearOK
        
}
    );
}

function 
postearLoading(respuesta){
    $(
'postearLoading').innerHTML "&nbsp;<img src='loader2.gif' />";
}

function 
postearOK(respuesta){
    
mostrarComentarios();

luego el codigo que muestra los comentarios
Código PHP:
<?php
require("includes/config.php");
$comida mysql_connect($hostname$user$pass) or trigger_error(mysql_error(),E_USER_ERROR); 
mysql_select_db($dbnombre$comida);        
$sql "SELECT * FROM comentarios";
$res mysql_query($sql);

while(
$data=mysql_fetch_assoc($res)){
    echo 
"
    <div id='comentarioContenedor'>
    <div id='comentario'>
        <a href='http://"
.$data['web']."'>".$data['nombre']."</a> - <span id='fecha'>".$data['fecha']."</span>
            <div id='texto'>"
.$data['comentario']."</div>
        </div>
    </div>
    "
;


?>

y finalmente el codigo que agrega a la base de datos el comentario
Código PHP:
<?php
require("includes/config.php");
$sql "INSERT INTO comentarios VALUES ('','".$_POST['nombre']."','".date("d.m.Y")."','".$_POST['texto']."','".$_POST['web']."')";
$res mysql_query($sql);

?>

Tengo una idea de agregar en bd de la tabla comentarios otro campo que se llame "identificador" y guarde el id de la noticia que se ingresa y de ahi hacer una consulta con la clausula WHERE como dices pero no se como empezar alguna sugerencia.?
y gracias
  #5 (permalink)  
Antiguo 14/07/2008, 13:09
 
Fecha de Ingreso: junio-2008
Mensajes: 52
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: sistema de comentarios

Gracias por el ejemplo polin2bclan lo voy a probar como dices
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:15.