Foros del Web » Programando para Internet » PHP »

Actulizar un dato dinamico (MySQL) de forma optima.

Estas en el tema de Actulizar un dato dinamico (MySQL) de forma optima. en el foro de PHP en Foros del Web. Hola, quisiera realizar la siguiente consulta: En la seccion NOTICIAS de mi sitio web los usuarios realizan comentarios, y cada vez que un comentario se ...
  #1 (permalink)  
Antiguo 15/08/2005, 20:54
 
Fecha de Ingreso: diciembre-2004
Mensajes: 721
Antigüedad: 19 años, 3 meses
Puntos: 2
Actulizar un dato dinamico (MySQL) de forma optima.

Hola, quisiera realizar la siguiente consulta:

En la seccion NOTICIAS de mi sitio web los usuarios realizan comentarios, y cada vez que un comentario se agrega a la pagian de noticias un dato llamado "(int) comentarios" de la tabla "noticias" se aumenta en "1".

En varias paginas de mi sitio deseo mostrar a los usuarios la cantidad de comentarios que se han realizado para dicha noticia.
En cada uno de los casos, realizo un query a la BD pidiendo el valor de "comentarios", y lo muestro en la pagina.

Ahora bien, esto funciona pero quiero saber si existe una forma mas optima para hacer esto, ya que cada vez q alguien entra a mi web, en el mismo index.php ya estoy haciendo 1 query para cada cuadro de resumen de noticia donde pido a la BD la cantidad de comentarios de cada noticia existente (en el index siempre tendre las ultimas 10 noticias.)

¿Esta bien lo que hago o estoy cometiendo un error por inexperto?

Le agradeceria mucho a aquellos experimentados en el tema que puedieran darme su guia / consejo.

Atte.
  #2 (permalink)  
Antiguo 16/08/2005, 06:24
Avatar de DINASEN  
Fecha de Ingreso: marzo-2003
Mensajes: 997
Antigüedad: 21 años, 1 mes
Puntos: 1
en el query de la index

SELECT noticias.*, campodelaotratablaconelnumerodecomentarios.tablado ndeeste AS valor FROM noticias ,tabladondeeste WHERE noticias.idcomentario = comentarios.id and ...."


si pones aqui lso campos exactamente te monto el sql
pero es que no me quedo muy claro tu estructura...

Un Saludo
  #3 (permalink)  
Antiguo 17/08/2005, 01:08
 
Fecha de Ingreso: diciembre-2004
Mensajes: 721
Antigüedad: 19 años, 3 meses
Puntos: 2
Hola!

Eso que me envias es el select para tomar el dato ? Si es asi, no tengo problemas para tomar el dato, sino con el sistema por el cual muestro dicho dato... es decir:

Mi query es: "select comentarios from noticias where id_noticia='$id_noticia';

Ahi tomo el valor de "CANTIDAD DE COMENTARIOS DE DICHA NOTICIA".

El problema es... CADA vez q alguien ingresa a mi index.php se ejecutan 10 de estas operaciones... ESTO ESTA BIEN QUE PASE? O deberia emplear alguna tecnica mas eficiente? Como por ejemplo... tomar 1 vez el dato, almacenarlo en alguna variable y luego de alguna forma comprobar si se ha actualizado dicho dato para volver a mostrarlo...

El tema es q como te digo, hay 10 noticias en mi index, osea, 10 querys de entrada....

Creo que lo que pregunto es algo tonto ahora q lo pienso bien... :S:S:S:S
  #4 (permalink)  
Antiguo 17/08/2005, 07:25
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 20 años, 6 meses
Puntos: 11
Veo que usas un select como este: "select comentarios from noticias where id_noticia='$id_noticia'; Eso me da la idea de que estas contando los registros con mysql_num_rows(), algo de tiempo ganarías haciendolo con sql, asi:

$sql="select count(comentarios) as cuantos from noticias where id=$id_noticia";
Luego sacas el valor del alias "cuantos" (como si fuera un campo mas) y ya tienes el conteo, sin necesidad de llamar a mysql_num_rows().

De seguro hay formas de optimizar, no sólo el codigo, sino el diseño del sistema. Puedes tambien obtener el conteo para las 10 noticias de una vez y guardarlo en una tabla temporal y luego leer de ella solo el resultado.
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 18:20.