Sacar comentarios sin leer al iniciar sesion.
Hola a tod@s.
Ya estoy enganxao otra vez con las malditas consultas. A ver si las subo paso a paso y alguien me puede decir que estoy haciendo mal que seguro que si.
Hago la función:
Gracias
Ya estoy enganxao otra vez con las malditas consultas. A ver si las subo paso a paso y alguien me puede decir que estoy haciendo mal que seguro que si.
Hago la función:
//Sacar la cantidad de comentarios de cada post sin leer function comentarios_no_leidos($id_del_comentario) { //Aqui le pasamos la id del post global $database_conexionwebpaqui, $conexionwebpaqui; mysql_select_db($database_conexionwebpaqui, $conexionwebpaqui); $query_DatosCom = sprintf("SELECT * FROM comentarios WHERE idpost = %s AND estado =0", $id_del_comentario, "int"); $DatosCom= mysql_query($query_DatosCom, $conexionwebpaqui) or die(mysql_error()); $row_DatosCom = mysql_fetch_assoc($DatosCom); $totalRows_DatosCom = mysql_num_rows($DatosCom); if ($totalRows_DatosCom>0) return true; else return false; mysql_free_result($DatosCom); }Hago la consulta:
mysql_select_db($database_conexionwebpaqui, $conexionwebpaqui); $query_ContarComentariosNuevos = "SELECT * FROM comentarios WHERE comentarios.estado = 0"; $ContarComentariosNuevos = mysql_query($query_ContarComentariosNuevos, $conexionwebpaqui) or die(mysql_error()); $row_ContarComentariosNuevos = mysql_fetch_assoc($ContarComentariosNuevos); $totalRows_ContarComentariosNuevos = mysql_num_rows($ContarComentariosNuevos);Y le paso las condicionales (1) para que no me tire un error al desconectar (2) si el usuario no es el mismo que el que tiene la sesión iniciada no me lo enseñe
<?php if (isset ($_SESSION['MM_Id'])){ ?> <?php if ($row_ContarComentariosNuevos['autor'] == $_SESSION['MM_Id']){;?> <span class="comments-span"> <i class="fa fa-lg fa-bell"></i> <a href="../user/notificaciones.php?recordID=<?php echo $row_SacarPosts['id']; ?>"><?php echo comentarios_no_leidos($row_ContarComentariosNuevos['idpost']); ?> Nuevos</a> </span> <?php }?> <?php }?>Bueno creo que ya esta todo. A ver si alguien me puede decir que estoy haciendo mal.
Gracias
5
Puntos
Puntos
1266
Visitas
Visitas
9
Resp
Resp
Por salva hace 110 meses
Principiante
Respuesta #1
Hola cuentanos exactamente q quiered hacer para que tengamos una idea mas clara ahora q sabemos como tienes el codigo
Saludos
0
Puntos
Puntos
Por alber hace 110 meses
Administrador
Respuesta #2
Buenos días Alber. Bufff. Creia que solo yo estaba hasta tarde pegándole al código.
Disculpa, pero estaba tan mareado que no te puse la explicación.
Pues lo que pretendo es que cuando un usuario entre y se loguee le muestre la cantidad de comentarios nuevos que tiene en el post que el ha creado
Disculpa, pero estaba tan mareado que no te puse la explicación.
Pues lo que pretendo es que cuando un usuario entre y se loguee le muestre la cantidad de comentarios nuevos que tiene en el post que el ha creado
0
Puntos
Puntos
Por salva hace 110 meses
Principiante
Respuesta #3
hola buenaasss en la función tienes que pasarte la id del comentario la idpost ya no te sirve, imagina que lo que quieres hacer es que cuando el usuario tenga notificaciones sin leer vea algun indicativo
function comentarios_no_leidos($id_del_comentario) { //Aqui le pasamos la id del comentario global $database_conexionwebpaqui, $conexionwebpaqui; mysql_select_db($database_conexionwebpaqui, $conexionwebpaqui); $query_DatosCom = sprintf("SELECT * FROM comentarios WHERE IDCOMENTARIO = %s AND estado =0 AND AUTOR=%s", //ID del comentario $id_del_comentario, "int", //ID del autor $_SESSION['MM_Id'], "int"); $DatosCom= mysql_query($query_DatosCom, $conexionwebpaqui) or die(mysql_error()); $row_DatosCom = mysql_fetch_assoc($DatosCom); $totalRows_DatosCom = mysql_num_rows($DatosCom); if ($totalRows_DatosCom>0) return true; else return false; mysql_free_result($DatosCom); }como ves en la función tampoco esta mal que le pases el autor pero lo mas importante es la id del comentario prueba y nos comentas ;)
0
Puntos
Puntos
Por alber hace 110 meses
Administrador
Respuesta #4
Hola Alber, gracias por tu pronta respuesta.
Tan solo he cambiado la función y la he dejado asi.
Pues bien, tal y como esta ahora, cuando me conecto con cualquiera de los 2 que suben posts y tienen comentarios por leer(ambos) no me saca ni el aviso de mensajes (una campanita) ni el total de ellos, o sea, que no me muestra la región.
Si me conecto con el que solo comenta y hago un comentario nuevo si que me saca el aviso de que tiene comentarios nuevos pero no la cantidad, pero el no es el creador del post.
Tan solo he cambiado la función y la he dejado asi.
//Sacar la cantidad de comentarios de cada post sin leer function comentarios_no_leidos($id_del_comentario) { //Aqui le pasamos la id del comentario global $database_conexionwebpaqui, $conexionwebpaqui; mysql_select_db($database_conexionwebpaqui, $conexionwebpaqui); $query_DatosCom = sprintf("SELECT * FROM comentarios WHERE estado =0 AND idcomentario = %s", //ID del comentario GetSQLValueString ($id_del_comentario, "int"));// Aqui le he puesto el ValueString porque daba un error $DatosCom= mysql_query($query_DatosCom, $conexionwebpaqui) or die(mysql_error()); $row_DatosCom = mysql_fetch_assoc($DatosCom); $totalRows_DatosCom = mysql_num_rows($DatosCom); if ($totalRows_DatosCom>0) return true; else return false; mysql_free_result($DatosCom); }Tengo cuatro usuarios creados. 2 que suben posts y que comentan, 1 que solo comenta y 1 que ni sube posts ni comenta.
Pues bien, tal y como esta ahora, cuando me conecto con cualquiera de los 2 que suben posts y tienen comentarios por leer(ambos) no me saca ni el aviso de mensajes (una campanita) ni el total de ellos, o sea, que no me muestra la región.
Si me conecto con el que solo comenta y hago un comentario nuevo si que me saca el aviso de que tiene comentarios nuevos pero no la cantidad, pero el no es el creador del post.
0
Puntos
Puntos
Por salva hace 110 meses
Principiante
Respuesta #5
ok yo la funcion la haría asi
//Sacar la cantidad de comentarios de cada post sin leer function comentarios_no_leidos($id_del_comentario) { //Aqui le pasamos la id del comentario global $database_conexionwebpaqui, $conexionwebpaqui; mysql_select_db($database_conexionwebpaqui, $conexionwebpaqui); $query_DatosCom = sprintf("SELECT * FROM comentarios WHERE estado =0 AND idcomentario = %s", //ID del comentario GetSQLValueString ($id_del_comentario, "int"));// Aqui le he puesto el ValueString porque daba un error $DatosCom= mysql_query($query_DatosCom, $conexionwebpaqui) or die(mysql_error()); $row_DatosCom = mysql_fetch_assoc($DatosCom); $totalRows_DatosCom = mysql_num_rows($DatosCom); //Obtenemos el total directamente return $totalRows_DatosCom; mysql_free_result($DatosCom); }y la notificación así
<?php if (isset ($_SESSION['MM_Id']) && comentarios_no_leidos($id_del_comentario)>0){// Aqui compribamos si hay notificaciones{ ?> <span class="comments-span"> <i class="fa fa-lg fa-bell"></i> <a href="../user/notificaciones.php?recordID=<?php echo $row_SacarPosts['id']; ?>"><?php echo comentarios_no_leidos($id_del_comentario) ?> Nuevos</a> </span> <?php }?>ya tienes una idea mas, el tema de las notificaciones es complejo.. saludos
0
Puntos
Puntos
Por alber hace 110 meses
Administrador
Respuesta #6
Buf, Y tan complejo. Esta noche mi cabeza no paraba de darle vueltas al asunto y ahora mismo llevo todo el día haciendo pruebas y nada. Bueno algo si he conseguido. Se que estoy cerca pero se me escapa algo.
Te digo lo que he hecho.
Me he saltado el paso de ir a notificaciones.php y luego tener que saltar a mis_posts.php ya que el usuario cuando se loguea en el index.php tiene 2 opciones de ver los comentarios del post. 1ª- entrando por el post y 2ª- entrando por las notificaciones por lo tanto entrando por una como por la otra siempre se tendrían que actualizar las 2 tablas(notifica y comentarios) por lo tanto me apaño con solo la de notificaciones y le hago el update cuando entro a ver_post.php entre por donde entre.
He conseguido que solo me muestre la región de las notificaciones de nuevos comentarios al usuario logueado y en los posts que el haya subido. Le he puesto el "return" a la función para que me devuelva "0" si no tiene comentarios,
Pero no hay manera de que me cuente los nuevos comentarios, o sea, los que están en estado "0", siempre me saca que hay 1 nuevo.
Y digo yo. No seria conveniente sacar la Id del post en la función "NotificacionesPendiente" ???
Como podría sacarla?
Saludos,
Te digo lo que he hecho.
Me he saltado el paso de ir a notificaciones.php y luego tener que saltar a mis_posts.php ya que el usuario cuando se loguea en el index.php tiene 2 opciones de ver los comentarios del post. 1ª- entrando por el post y 2ª- entrando por las notificaciones por lo tanto entrando por una como por la otra siempre se tendrían que actualizar las 2 tablas(notifica y comentarios) por lo tanto me apaño con solo la de notificaciones y le hago el update cuando entro a ver_post.php entre por donde entre.
He conseguido que solo me muestre la región de las notificaciones de nuevos comentarios al usuario logueado y en los posts que el haya subido. Le he puesto el "return" a la función para que me devuelva "0" si no tiene comentarios,
Pero no hay manera de que me cuente los nuevos comentarios, o sea, los que están en estado "0", siempre me saca que hay 1 nuevo.
Y digo yo. No seria conveniente sacar la Id del post en la función "NotificacionesPendiente" ???
Como podría sacarla?
Saludos,
0
Puntos
Puntos
Por salva hace 110 meses
Principiante
Respuesta #7
para hacerlo tienes que tener una tabla notificaciones y al insertar un nuevo comentario que tambien inserte una notificacion con un estado por ejemplo 0 no leida y 1 leida, en la funcion notificaciones pendientes consultas la tabla notificaciones
te vas a quitar de encima un montón de problemas a la hora de sacar las notificaciones pendientes
te vas a quitar de encima un montón de problemas a la hora de sacar las notificaciones pendientes
0
Puntos
Puntos
Por alber hace 110 meses
Administrador
Respuesta #8
Bueno al final ha salido. He seguido tu recomendación pero le he tenido que añadir un campo estado a la tabla comentarios y actualizar las 2 tablas con la id del post.
Igual no es la manera mas practica de hacerlo, pero funciona.
Soy cabezon y por estas cosas me encanta la programación aunque sea un mero y simple aprendiz de casi 51 años, el desafio del hombre contra la maquina. Je,je,je,je,je,
Saludos y gracias por vuestra ayuda.
Ahora, weno mañana, a seguir.
Igual no es la manera mas practica de hacerlo, pero funciona.
Soy cabezon y por estas cosas me encanta la programación aunque sea un mero y simple aprendiz de casi 51 años, el desafio del hombre contra la maquina. Je,je,je,je,je,
Saludos y gracias por vuestra ayuda.
Ahora, weno mañana, a seguir.
5
Puntos
Puntos
Por salva hace 110 meses
Principiante
Respuesta #9
salva dijo:me alegro de que lo tengas solucionado compañero.. cerramos tema...
Bueno al final ha salido. He seguido tu recomendación pero le he tenido que añadir un campo estado a la tabla comentarios y actualizar las 2 tablas con la id del post.
Igual no es la manera mas practica de hacerlo, pero funciona.
Soy cabezon y por estas cosas me encanta la programación aunque sea un mero y simple aprendiz de casi 51 años, el desafio del hombre contra la maquina. Je,je,je,je,je,
Saludos y gracias por vuestra ayuda.
Ahora, weno mañana, a seguir.
0
Puntos
Puntos
Por demonio23 hace 110 meses
Moderador