Foros del Web » Programando para Internet » PHP »

Mostrar varias consultas

Estas en el tema de Mostrar varias consultas en el foro de PHP en Foros del Web. Hola amigos del foro, tengo un pequeño sistema de usuarios donde cada usuario tiene su propio perfil y en la parte de comentarios (de su ...
  #1 (permalink)  
Antiguo 06/04/2013, 18:31
 
Fecha de Ingreso: septiembre-2012
Mensajes: 112
Antigüedad: 11 años, 7 meses
Puntos: 1
Mostrar varias consultas

Hola amigos del foro, tengo un pequeño sistema de usuarios donde cada usuario tiene su propio perfil y en la parte de comentarios (de su cuenta) tiene como un tipo muro donde le aparecen comentarios de las personas que el desea, osea si el quiere que le aparezca los comentarios de maría se tiene que meter así perfil y le tiene que agregar para poder ver sus comentarios, si quiere que los comentarios de pedro le aparezcan igual se mete a su perfil y lo agrega, lo que quiero saber es como puedo hacer para que aparezcan todos esos comentarios si este usuario agrego a 100 personas o mas?
De verdad que se los agradecería.
  #2 (permalink)  
Antiguo 06/04/2013, 19:59
 
Fecha de Ingreso: abril-2010
Ubicación: Saltillo Mexico
Mensajes: 83
Antigüedad: 14 años
Puntos: 4
Respuesta: Mostrar varias consultas

Como es la relación en la base de datos?
Como sabes cuales son las personas que agregó cada usuario?
  #3 (permalink)  
Antiguo 06/04/2013, 20:28
 
Fecha de Ingreso: septiembre-2012
Mensajes: 112
Antigüedad: 11 años, 7 meses
Puntos: 1
Respuesta: Mostrar varias consultas

Hola dluna88 gracias por tu pronta respuesta, tengo lo siguiente, una tabla usuarios con : matricula, nombre, edad etc..
comentarios: id_matricula, comentario.
  #4 (permalink)  
Antiguo 07/04/2013, 16:28
 
Fecha de Ingreso: abril-2010
Ubicación: Saltillo Mexico
Mensajes: 83
Antigüedad: 14 años
Puntos: 4
Respuesta: Mostrar varias consultas

No se si entendí bien... lo que quieres es que los usuarios puedan suscribirse a los comentarios de los demás usuarios. Entonces yo haría una tabla para las subscripciones.

suscripciones: id_matricula,suscripciones

Y pondría en el campo de suscripciones a los usuarios que quiera suscribirse separados por algún caracter o espacio, y cada que se suscriba, añadirlo a ese campo.

ej:

el usuario con la matricula 001:

id_matricula: 001
suscripciones: 005|009|250|650|120|003|012

Enconces el usuario 001 está suscrito a los usuarios 005, 009 etc.

Lo que haces es consultar a esta tabla:

Código PHP:
Ver original
  1. $x = mysql_query("SELECT * FROM suscripciones WHERE id_matricula = 'LA MATRICULA DEL USUARIO EN SESION'");
  2.  
  3. $subscriptores = $x['suscriptores'];

y luego armas la consulta con esos ids

Yo te recomendaría poner un campo 'fecha' en la tabla de comentarios, para poder filtrar los comentarios mas recientes.

Código PHP:
Ver original
  1. $s = str_replace("|","' OR id_matricula = '",$subscriptores);
  2.  
  3. $sql = "SELECT * FROM comentarios WHERE id_matricula = '".$s."' ORDER BY fecha DESC";

y ya con $sql puedes consultar los comentarios mas recientes, de los usuarios a los que el usuario en sesion esté suscrito.

Código PHP:
Ver original
  1. $news = mysql_query($sql);
  2.  
  3. while($n = $news->fetch_array()){
  4.    echo $n['comentario']."<br/>";
  5. }



http://php.net/manual/es/function.str-replace.php


Por cierto, si aun no es muy extenso tu código, te recomendaría que leyeras un poco la extensión mysqli, en lugar de mysqli normal que ha sido deprecada en las versiones futuras de PHP.

http://www.forosdelweb.com/f18/anunc...ecada-1008145/

http://php.net/manual/es/book.mysqli.php

Cualquier duda hazmela saber.

Saludos.
  #5 (permalink)  
Antiguo 07/04/2013, 19:07
 
Fecha de Ingreso: septiembre-2012
Mensajes: 112
Antigüedad: 11 años, 7 meses
Puntos: 1
Respuesta: Mostrar varias consultas

Cita:
Iniciado por dluna88 Ver Mensaje
No se si entendí bien... lo que quieres es que los usuarios puedan suscribirse a los comentarios de los demás usuarios. Entonces yo haría una tabla para las subscripciones.

suscripciones: id_matricula,suscripciones

Y pondría en el campo de suscripciones a los usuarios que quiera suscribirse separados por algún caracter o espacio, y cada que se suscriba, añadirlo a ese campo.

ej:

el usuario con la matricula 001:

id_matricula: 001
suscripciones: 005|009|250|650|120|003|012

Enconces el usuario 001 está suscrito a los usuarios 005, 009 etc.

Lo que haces es consultar a esta tabla:

Código PHP:
Ver original
  1. $x = mysql_query("SELECT * FROM suscripciones WHERE id_matricula = 'LA MATRICULA DEL USUARIO EN SESION'");
  2.  
  3. $subscriptores = $x['suscriptores'];

Gracias dluna88 desde luego, pero si quiero borrar un campo especifico en 005|009|250|650|120|003|012 pienso que tendria problema, o que piensas?
  #6 (permalink)  
Antiguo 07/04/2013, 21:01
 
Fecha de Ingreso: abril-2010
Ubicación: Saltillo Mexico
Mensajes: 83
Antigüedad: 14 años
Puntos: 4
Respuesta: Mostrar varias consultas

puede ser algo confuso, pero siempre se puede hacer, la cuestion es la imaginación que le pongamos.

Hay varias maneras de borrar un campo específico de esa cadena. puede ser con la misma función str_replace(), o tambien puede ser con la funcion explode() para crear un arreglo a partir de esa cadena.

Por ejemplo, si quiero eliminar el 250 solamente:

Código PHP:
Ver original
  1. //el campo a eliminar
  2. $eliminar = "250";
  3.  
  4. //La cadena que nos trajo la consulta:
  5. $cadena = "005|009|250|650|120|003|012";
  6.  
  7. //la cadena que vamos a crear:
  8. //reemplazar "|250|" por "":
  9. $nuevaCadena = str_replace("|".$eliminar."|","",$cadena);

y listo... ahora simplemente haces el UPDATE

al igual que añadiríamos otro:

Código PHP:
Ver original
  1. //la cadena que nos trajo la consulta
  2. $cadena = "005|009|250|650|120|003|012";
  3.  
  4. //el campo a añadir
  5. $nuevo = "556";
  6.  
  7. //lo concatenamos a la cadena existente
  8. $cadenaNueva = $cadena."|".$nuevo;

y su respectivo UPDATE


Ahora, si las consultas son muy recurrentes, estaría muy bien que las hicieras con classes.

Saludos

Etiquetas: usuarios
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:05.