Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] mysql

Estas en el tema de mysql en el foro de PHP en Foros del Web. Hola buenas!!! no se si esto vaya aqui pero necesito ayuda!!! fijense.... tengo una base de datos con las siguientes tablas y los sigioentes campos ...
  #1 (permalink)  
Antiguo 12/02/2013, 16:10
 
Fecha de Ingreso: febrero-2013
Mensajes: 115
Antigüedad: 11 años, 2 meses
Puntos: 5
Pregunta mysql

Hola buenas!!! no se si esto vaya aqui pero necesito ayuda!!! fijense....

tengo una base de datos con las siguientes tablas y los sigioentes campos

Tabla USUARIOS el campo mas importante para esta tabla es el usuario supongo!!! no tiene "id" aunque creo que lo deberia tener....

Tabla CONTACTOS (id, usuario, amigo)

Tabla PUBLICACIONES (id, usuario, amigo, texto, fecha)

se preguntaran que es lo que quiero....

bueno les doy un ejemplo con una pagina muy conocida "facebook"...

si yo entro en mi muro salen solo las publicaciones mias y de mis amigos...si yo no tengo relacion con alguien (hablo de relacion en el sentido de que no soy amigo) no me aparecen publicaciones....

sera que se puede hacer con un codigo de condiciones en el que si no tienen relacion no se muestren??? o tendria que hacer una sentencia sql???

por favor ayuda y si pueden denme un ejemplo para entender!!!

yo tengo mas o menos esa idea pero no se como plantearla!!! y he estado investigando por internet pero no consigo!!!!


de verdad necesito ayuda con esto y mil gracias por adelantado!!!!

Última edición por horusorion; 12/02/2013 a las 16:39 Razón: es una pregunta no una exclamacion
  #2 (permalink)  
Antiguo 12/02/2013, 16:46
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 15 años, 11 meses
Puntos: 528
Respuesta: php y mysql

Efectivamente no es tema de php, si no de bases de datos.

Siempre será mejor crear una consulta sql antes de tratar de filtrar los datos por php, es decir será mejor que armes tu consulta para obtener los datos que consultar todos los datos y con php relacionarlos.
  #3 (permalink)  
Antiguo 13/02/2013, 19:37
 
Fecha de Ingreso: febrero-2013
Mensajes: 115
Antigüedad: 11 años, 2 meses
Puntos: 5
Respuesta: mysql

yo he intentado crear una consulta!!! es mas me baje un tutorial de mysql para aprender!!! pero no logro hacerlo!!! sera que me podrias dar un ejemplo!!!! de forma que yo pueda editarlo depende a lo que necesite???

si me ayudara me vendria muy bien porque para mi es importante aprender!!!! le agradezco mucho que me haya quitado la duda entre si es php o bases de datos!!! de igual forma yo estare investigando de acuerdo a lo que me dijo!!!!! de verdad muchas gracias!!! y espero ayudas!!!!
  #4 (permalink)  
Antiguo 14/02/2013, 13:20
 
Fecha de Ingreso: octubre-2008
Mensajes: 127
Antigüedad: 15 años, 6 meses
Puntos: 5
Respuesta: mysql

Hola,

aunque es importante conocer las sentencias SQL para poder obtener información de una BD también es importante, mucho más si cabe, saber diseñar una BD.

Una tabla sin ID, por ejemplo, no tiene mucho sentido, a no ser que sea una tabla de relaciones m:n. En tu caso, comentas que la tabla USUARIOS no tiene ID.
Tampoco me queda claro cómo vas a almacenar la relaciones entre amigos con el modelo propuesto para saber si tienes que mostrar o no la información en su muro. Piensa que un amigo, tal y como lo describes, a su vez es un usuario.

Te aconsejo que revises el modelo de la BD acorde a la funcionalidad que quieres implementar. Una vez lo tengas implementado verás como las consultas salen "automáticamente"

Saludos.
  #5 (permalink)  
Antiguo 14/02/2013, 17:13
 
Fecha de Ingreso: febrero-2013
Mensajes: 115
Antigüedad: 11 años, 2 meses
Puntos: 5
Respuesta: mysql

bueno el indice primario de mi tabla usuario es el usuario y en la tabla de amigos!! el usuario y el amigo estan relacionados con la tabla de usuarios!! yo entiendo eso!!! yo pense que no hay que ajuro ponerje un id a la talba usuario!! aunque es mejor trabajar con el!!! (¿me equivoco?) yo para mi base de datos utulizo el xamp!! con el cual puedo hacer las relaciones entre mis tablas muy facilmente!!! es mas en el mismo programa me ofrecen un esquema de mi base de datos.... disculpa... pero yo tengo toda mi base de datos definida y relacionada!! pero no logro hacer que me muestre lo que quiero!!! que es lo que les plantee en este tema!!!


les explicare como esta relacionada para ver si estoy errado!!!! por lo menos lo de los comentarios o publicaciones....
En la tabla de usuarios el usuario esta relacionado a la tabla de amigos de la siguiente forma!!

El usuario esta relacionado con el usuario y a su vez con el amigo....

La tabla de publicaciones esta relacionada de la siguiente forma...

Publicaciones.usuario esta relacionada con el usuario

publicaciones.amigo esta relacionada con el amigo

deberia ser asi??? Verdad???

Cree que seria bueno que les muestre mis bases de datos para que me puedan ayudar???

De verdad muchisimas gracias!!! Y mas se los agradeceria si me ayudaran...

Y disculpen si redundo mucho!!! Pero quiero que me entiendan!!!

Última edición por gnzsoloyo; 14/02/2013 a las 17:18 Razón: Demasiados gritos :P
  #6 (permalink)  
Antiguo 14/02/2013, 17:34
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: mysql

Demasiadas vueltas... para un tema trillado.
Por empezar, el hecho de que uses XAMPP es irrelevante, y que uses o no identificadores numericos para las tablas, depende de lo bien o mal que sepas diseñar una base bajo los límites que el modelo E-R te pone. La mayoría de los programadores no lo sabe hacer (lo siento, es mi experiencia y opinión)

Pero ya que dices que quieres tomar de base a Facebook, empecemos por analizar la lógica que sigue una busqueda como la que <FB hace para mostrarte temas propios, de tus contactos y de terceros.
1) Luego del login, busca todos tus temas publicados, y que sean para compartir.
2) También busca tu lista de contactos (no, no son aciones simultáneas, sino consecutivas).
3) Una vez obtenidas ambas listas, busca los temas publicados por tus contactos y que hayan sido compartidos publicamente o bien que sean para ti (o sea que busca cada lista de contactos de tus contactos y sus restricciones).
4) Si en la lista de contactos de tus contactos, encuentra que algunos de ellos tienen temas compartidos públicamente, los recupera para mostrarlos (no, tampoco es simultáneo, es secuencial).
5) Finalmente busca si de los temas recuperados del segundo nivel, algunos de ellos provienen de algun ema o sitio publico, para recuperar los elementos necesarios.
6) Recién cuando haya recuperado todo eso, entonces lo ordena, jerarquiza, pagina y muestra en la pantalla.

Ahora bien, la pregunta del millón: ¿Una sola consulta?

Ni por las tapas.

En un sistema así estás hablando de varias decenas de consultas (hay que considerar todas las validaciones necesarias, que pueden provenir de funciones almacenadas en la base), y muy probablemente varios stored procedures, antes de tener la información necesaria.
En otras palabras, es un trabajo grande, muy grande, que te llevará bastante tiempo.
El Facebook actual, que mencionas como modelo, no lo construyó un único programador. Y hacer una red social, por mínima que sea, requiere que te hagas un plan de desarrollo (al menos en papel), para ir cubriendo cada parte de lo que se va necesitando, y no perder el camino mientras lo haces.

!Ah!, Si piensas que esas tres tablas alcanzan, te comento que un esquema básico sería mas o menos:

__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #7 (permalink)  
Antiguo 15/02/2013, 14:10
 
Fecha de Ingreso: febrero-2013
Mensajes: 115
Antigüedad: 11 años, 2 meses
Puntos: 5
Respuesta: mysql

yo se que lleva tiempo... y el principal facebook que se llamaba facebook conect lo hizo una sola persona!!! y se unio a otros porque no tenia dinero!!!! bueno es lo que tengo entendido!!!

muchas gracias a todos por sus respuestas!!! voy a investigar un poco de lo que me dijo gnzsoloyo para ver si puedo avanzar!!! y cualquier cosa pido ayuda!!! muchas gracias a todos de verdad
  #8 (permalink)  
Antiguo 18/02/2013, 17:49
 
Fecha de Ingreso: febrero-2013
Mensajes: 115
Antigüedad: 11 años, 2 meses
Puntos: 5
Respuesta: mysql

Hola les aviso que el problema no era de mysql... lo logre realizar con php pidiendole que si no es mi amigo no me muestre las publicaciones... de esta manera... claro sera esquematico...utilice solo condicionales if...
De esta forma
Si publicaciones["usuario"] = usuario["usuario"] // publicaciones["amigo"] = usuario["usuario"] // publicaciones["usuario"] = amiho["amigo"] // publicaciones["amigo"]=amigo["amigo"]
{
mostrarme las publicaciones
}
Los // es para decir o y las dobles comillas son comillas simples...
Gracias por todo y creo que este tema ya esta solucionado...

Etiquetas: mysql, sql, tabla, 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:42.