entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

2votos

problema al extraer datos de la bd

EL problema es que estoy realizando un sistema de comentarios, todo funciona bien hasta el punto en que decidi agregarle un sistema de respuestas a cada comentario.

La respuestas las almacene en el mismo lugar donde estan los comentarios pero pero las extraigo con diferentes condiciones, por ejemplo para extraer los comentario la condicion es que debe coincider la id del post, y la id comentario debe estar vacia, y para extraer la respuestas la id comentario debe tener la id del comentario a la que se le ha respondido, asi extraigo las respuestas.

$select_res = "SELECT * FROM comentarios_post WHERE id_comentario= '$id_comen'";

                  $result_res= mysqli_query($con,$select_res);  

                while($row_res=mysqli_fetch_array($result_res)){

                $id_u = $row_res[id_usuario];

                $select_user_rs = "SELECT * FROM usuarios WHERE usuario_usuarios='$id_u'";

                $result_user_rs = mysqli_query($con,$select_user_rs);

            $row_user_rs=mysqli_fetch_array($result_user_rs);

                    echo $id_u;

}

Pero no me muestra datos de $row_user_rs alguien sabe cual es la razon? tal vez deberia crear otra base de datos para cada respuesta?

0voto

Leonardo-Tadei comentado

Hola @jorge98, ampliá tu pregunta para incluir la estructura de las tablas comentarios_post y usuarios, porque sin esa información no podemos rastrear el problema...

0voto

jorge98 comentado

Esta es la tabla donde se almacenan los comentarios

`id` int(10) NOT NULL,
  `id_usuario` varchar(100) NOT NULL,
  `id_comentario` int(10) NOT NULL,
  `id_post` varchar(100) NOT NULL,
  `comentario` varchar(1000) NOT NULL

y esta es donde se almacenan los usuarios

`id` int(10) NOT NULL,
  `usuario_usuarios` varchar(200) NOT NULL,
  `nombre_usuarios` varchar(200) NOT NULL,
  `correo_usuarios` varchar(200) NOT NULL,
  `contrasena_usuarios` varchar(200) NOT NULL

las id son auto incrementables

la verdad no entiendo el problema, al principio crei q era porque estaba abriendo un while dentro de otro while pero fui descartando y ese no es el problema donde dice echo="id_u" se muestran correctamente los usuarios correspondientemente donde esta el comentario, pero cuando lo pongo dentro de la peticion o sea aqui

 $select_user_rs = "SELECT * FROM usuarios WHERE usuario_usuarios='$id_u'";

no muestra ningun dato de la tabla usuarios.

ahora si pongo:

 $select_user_rs = "SELECT * FROM usuarios WHERE usuario_usuarios='jorge'";

muestra los datos de "jorge" eso quiere decir que las dos consultas si funcionan. Tambien intente hacer la consulta con la id del usuario que comento o sea de esta forma

 $select_user_rs = "SELECT * FROM usuarios WHERE usuario_usuarios='$id_user_comen'";

y de esa forma si funciono pero obviamente mostro los datos del usuario que comento y necesito que muestre los datos del usuarios que respondio

alguna idea??

0voto

jorge98 comentado

Oye ya descubrí el problema pero no se como solucionarlo.

Creo q es un error de la libreria, yo estoy enviando los comentarios con ajax y sucede que cuando envio el comentario se guarda en la base de datos y se pueden extraer los datos normalmente pero cuando envio la respuesta se almacena perfectamente bien y puedo extraer la respuesta pero cuando intento extraer los datos del usuario con la id q almacene en la tabla de comentarios no se muestra ningun dato solo sucede cuando envio la respuesta raro no?

Me imagino que es porque las respuestas se envían desde a dentro de un while y los comentarios no.

Este es el codigo que uso para publicar y comentar:

<script type="text/javascript">

                function verific_text(comentar,boton){

            var comen = document.getElementById(comentar).value;

                        if(comen.length > 0){

    document.getElementById(boton).disabled =false;

       document.getElementById(boton).style.background='#3b94d9';
       document.getElementById(boton).style.cursor='pointer';

                        }else{

             document.getElementById(boton).disabled =true;
            document.getElementById(boton).style.background='#A1C6E2';
            document.getElementById(boton).style.cursor='auto';

                        }

                    }

                 function enviar_datos(comentar,id_user,id_post,boton){
var reader = new FileReader();

var c=document.getElementById(comentar).value;
var id_u=document.getElementById(id_user).value;
var id_p=document.getElementById(id_post).value;
var bn=document.getElementById(boton).value;

var url="";

$.ajax({
type:"post",
url:url,
data:{comentar:c,id_user:id_u,id_post:id_p,boton:bn,},
success:function(datos){

$("#refres").load(url); 
}
})

                 }

     function enviar_dat(responder_comen,id_user,id_post,id_comen,boto){
var reader = new FileReader();

var c=document.getElementById(responder_comen).value;
var id_u=document.getElementById(id_user).value;
var id_p=document.getElementById(id_post).value;
var id_c=document.getElementById(id_comen).value;
var bn=document.getElementById(boto).value;

var url="";

$.ajax({
type:"post",
url:url,
data:{responder_comen:c,id_user:id_u,id_post:id_p,id_comen:id_c,boto:bn,},
success:function(datos){

$("#refres").load(url);
}
})

                 }   

</script>

<button type="button" value="publicar" name="boton" disabled id="boton" onclick="enviar_datos('comentar','id_user','id_post','boton');">Publicar</button>

<button type="button" value="responder" disabled id="boto<?= $id_comen?>" class="button_responder" onclick="enviar_dat('responder_comen<?= $id_comen?>','id_user','id_post','comen_mg<?= $id_comen?>','boto<?= $id_comen?>')">Responder</button>

luego eso lo envio por PHP me imagino que no es la manera correcta y por eso sucede ese error.

1 Respuesta

1voto

gerko23 Puntos1930

Hola puedes solucionarlo con un query mas estructurado, nose si entendi pero tienes 3 valores importantes en juego el post, el comentario y el usuario, en base a los usuarios puedes obtener los comentarios de cada post, tambien te dejo un ejemplo talves te sirva:

SELECT COMENTARIOS_POST.*  FROM COMENTARIOS_POST 
LEFT JOIN USUARIOS ON COMENTARIOS_POST.ID_USER = USUARIOS.ID_USER
WHERE COMENTARIOS_POST.ID_COEMTARIO = ".$ID_COMEN." ORDER BY ID_COMENTARIO DESC LIMIT 1,1

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta