Foros del Web » Programando para Internet » PHP »

CONSULTA TABLAS INDEXADAS PHP+MySQL

Estas en el tema de CONSULTA TABLAS INDEXADAS PHP+MySQL en el foro de PHP en Foros del Web. Saludos amigos... soy nuevo y tengo dudas de como hacer una consulta entre varias tablas de mi BD... les explico: tengo 2 tablas indexadas (aunque ...
  #1 (permalink)  
Antiguo 12/04/2006, 10:58
 
Fecha de Ingreso: febrero-2006
Ubicación: Barquisimeto, Venezuela
Mensajes: 36
Antigüedad: 18 años, 2 meses
Puntos: 0
CONSULTA TABLAS INDEXADAS PHP+MySQL

Saludos amigos...

soy nuevo y tengo dudas de como hacer una consulta entre varias tablas de mi BD... les explico:
tengo 2 tablas indexadas (aunque realmente no se si estan bien)

1)
| usuarios |
-id_usuario | @ (principal)
{

demas campos de datos usuario
....

}
-articulos_usuario (donde se suponen se guardan todos los id_articulos que el usuario publique)

2)
| articulos |
-id_articulo | @
-id_usuario | F (foranea)
-contenido
-img1
-img2
-img3
-fecha_publicacion
-fecha_exp

bueno entonces explicitamente lo que no se como hacer es:

- Que en el campo articulos de la tabla usuarios se me guarden todos los articulos que el usuario publique y aparte quitar los articulos que ya no esten presentes en la tabla articulos bien sea por que fueron borrados por el admin o por q expiraron.

- ¿Como programar cuando expiran los mensajes luego de X tiempo de publicado?

- Luego de lograr resolver lo anterior, hacer una consulta entre ambas tablas para mostrar los articulos publicados por cada usuario

Espero que puedan resolverme esto ya que es lo unico que me falta para poder terminar mi aplicacion, de atentemano muchas gracias...

Última edición por oig_rozo; 12/04/2006 a las 11:11
  #2 (permalink)  
Antiguo 12/04/2006, 11:05
Avatar de JorgitoAlfajor  
Fecha de Ingreso: enero-2006
Mensajes: 152
Antigüedad: 18 años, 3 meses
Puntos: 1
Hombre de pocas palabras oig_rozo .Podrias indicar un poco más que es lo que queres hacer para ver en que podemos colaborar.
Saludos.
__________________
¿Se me entiende la letra?
  #3 (permalink)  
Antiguo 12/04/2006, 11:09
 
Fecha de Ingreso: febrero-2006
Ubicación: Barquisimeto, Venezuela
Mensajes: 36
Antigüedad: 18 años, 2 meses
Puntos: 0
coño no se por que no puedo colocar mi mensaje completo
  #4 (permalink)  
Antiguo 12/04/2006, 11:10
 
Fecha de Ingreso: febrero-2006
Ubicación: Barquisimeto, Venezuela
Mensajes: 36
Antigüedad: 18 años, 2 meses
Puntos: 0
no se que es lo que pasa.... me dice un mensaje que debo tener mas de 15 post o algo asi..
  #5 (permalink)  
Antiguo 12/04/2006, 11:10
 
Fecha de Ingreso: febrero-2006
Ubicación: Barquisimeto, Venezuela
Mensajes: 36
Antigüedad: 18 años, 2 meses
Puntos: 0
Ya por fin me dejo poner mi mensaje completo... era que tenia que postear mas de 15 veces!!!
  #6 (permalink)  
Antiguo 12/04/2006, 12:06
Avatar de JorgitoAlfajor  
Fecha de Ingreso: enero-2006
Mensajes: 152
Antigüedad: 18 años, 3 meses
Puntos: 1
Realizar una actualización de tus tablas cada cierto tiempo (como por ejemplo para borrar los artículos que expiraron) no podés hacerlo solamente con php, necesitas alguna otra herramienta como el cron de linux. Lo que podrías hacer es, basándote en la fecha actual y en la fecha de expiración del artículo, verificar que no haya expirado y si lo ha hecho no mostrarlo.
Otra cosa: no entiendo para que necesitás tener un campo en tu tabla usuario que contenga todos los ids de los articulos que publicó. Con la tabla artículos te basta para saber cuales son los articulos de un usuario. Además, cuando quieras borrar un artículo, lo eliminas de la tabla artículos y listo, no necesitás actualizar la tabla usuario ni ninguna otra.
Y la consulta para obtener los artículos publicado por un usuario seria mas o menos asi:

SELECT * FROM usuarios u JOIN articulos a WHERE NOW() < a.fecha_exp

Lo de NOW() < a.fecha_exp es para filtrar los articulos que expiraron.

Saludos.
__________________
¿Se me entiende la letra?
  #7 (permalink)  
Antiguo 12/04/2006, 13:59
 
Fecha de Ingreso: febrero-2006
Ubicación: Barquisimeto, Venezuela
Mensajes: 36
Antigüedad: 18 años, 2 meses
Puntos: 0
Pregunta

Hola JorgitoAlfajor, bueno entiendo lo que me dices que no hacer un campo en la tabla usuarios para guardar los registros de cada articualo por cada uno de los usuarios... pero lo que no me quedo muy claro fue la consulta

SELECT * FROM usuarios u JOIN articulos a WHERE NOW() < a.fecha_exp

especialmente en esta parte u JOIN que significa la "u" y en esta parte a.fecha_exp que significa la "a"

te agredezco si me puedes aclarar esta dura...

muchas gracias!!!
  #8 (permalink)  
Antiguo 13/04/2006, 15:54
Avatar de JorgitoAlfajor  
Fecha de Ingreso: enero-2006
Mensajes: 152
Antigüedad: 18 años, 3 meses
Puntos: 1
Bueno, la u y la a son para darle nombre a las tablas usuarios y articulos. Darla nombres a las tablas (o "alias") se utiliza para hacer referencia a ellas sin tener que escribir su nombre completo. En la consulta, a.fecha_exp se refiere al campo fecha_exp de la tabla articulos. Podría haber puesto simplemente fecha_exp, hubiera sido lo mismo. Pero el el caso de que la tabla usuario tuviera un campo llamado tambien fecha_exp habría que aclarar a cual campo nos estamos refiriendo (al de la tabla usuario o al de la tabla referencia). En la consulta que escribí no es necesario, pero yo lo pongo por claridad.
Saludos.
__________________
¿Se me entiende la letra?
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 11:35.