Foros del Web » Programando para Internet » PHP »

duda con foro y rendimiento

Estas en el tema de duda con foro y rendimiento en el foro de PHP en Foros del Web. Hola estimados: estoy programando un pequeño foro y tengo la siguiente pregunta: Pensaba almacenar los totales mensajes y totales de respuestas de cada foro en ...
  #1 (permalink)  
Antiguo 19/03/2003, 11:43
Avatar de Sir Matrix  
Fecha de Ingreso: octubre-2000
Ubicación: Dentro de mi cabeza. ono?
Mensajes: 1.264
Antigüedad: 24 años, 1 mes
Puntos: 3
Exclamación duda con foro y rendimiento

Hola estimados:

estoy programando un pequeño foro y tengo la siguiente pregunta:

Pensaba almacenar los totales mensajes y totales de respuestas de cada foro en un campo más de la base de datos y del tema correspondiente, es decir, cada vez que alguien envía un mensaje el campo "respuestas" y "totalmensajes" se incrementa en 1.

Esto tiene el problema de que si elimino un mensaje (que lo hago directamente desde la base de datos) el número de mensajes mostrado será mayor al real.

Entonces habia pensado en contar los registros con la función "mysql_num_rows". Pero esto significa realizar una nueva consulta a la base de datos cada vez que muestro un mensaje y el listado de foros, por lo que creo que el rendimiento no será el mismo (pensando en que muchos usuarios a la vez posteen)

qué opinan? que me conviene hacer? .

El foro lo tengo acá por si lo quieren ver: http://www.webmagic.cl/foros.php

Cuando lo termine bien les posteo el código por aquí.

saludos y gracias de ante
__________________
|||| ))>_<(( ||||
www.webmagic.cl <-- esta pagina está mala, no la busquen
  #2 (permalink)  
Antiguo 19/03/2003, 11:55
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
Usa la versión "SQL" de mysql_num_rows():

Código PHP:
$sql="SELECT COUNT(*) FROM tabla WHERE condicion=sitehacefalta";
$consulta=mysql_query($sql); 
Con eso obtienes un solo registro con un solo campo .. que contiene el total (numero) de registros q tenga esa tabla bajo esa condición si la usas ..

Accedes a ese resultado via:
Código PHP:
$total_registros=mysql_result($consulta,0,0); 
Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 19/03/2003, 11:57
Avatar de Webstudio
Colaborador
 
Fecha de Ingreso: noviembre-2001
Ubicación: 127.0.0.1
Mensajes: 3.499
Antigüedad: 23 años
Puntos: 69
Chir.... en realidad, el tener un campo por cada Foro que indique la cantidad de mensajes, es lo más acertado, aunque infringe una de las leyes de la normalizacion de Bases de Datos.
De todas maneras, eso se resuelve con un poquito más de programación, tan solo hacer un link para borrar los mensajes que decremente ese campo en 1, así como lo incrementás en 1 cuando se crea un nuevo tema.

Otra cosa que podés hacer es un Script que te actualice los contadores de todos los Foros, basándote en la cantidad real de temas que tenga, lo corres de vez en cuando, y listo.

Saludos.
__________________
Tutoriales Photoshop | Web-Studio.com.ar
Artículos PHP | ZonaPHP.com
  #4 (permalink)  
Antiguo 19/03/2003, 12:00
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
mm el COUNT() de Mysql (SQL) es de lo mas rápido para consultar por totales de registros .. Por lo menos mas rápido que hacer un mysql_num_rows() q no hace mas q obtener todos los registros de la consulta realizada y "contarlos" en PHP ..

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #5 (permalink)  
Antiguo 19/03/2003, 13:09
Avatar de Sir Matrix  
Fecha de Ingreso: octubre-2000
Ubicación: Dentro de mi cabeza. ono?
Mensajes: 1.264
Antigüedad: 24 años, 1 mes
Puntos: 3
que wenos datos

Graciassssssss

lo voy a hacer como dice jueves, está buena la idea de hacer un código que actualize los números de vez en cuando, por cualquier cosa.
lo del "SELECT COUNT(*) me sirve bastante para otro codiguito que tengo ahí con mysql_num_rows().
__________________
|||| ))>_<(( ||||
www.webmagic.cl <-- esta pagina está mala, no la busquen
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 22:26.