1000 FAQ, 500 tutoriales y vídeos explicativos. ¡Aquí sólo hay soluciones!
Utilizar count() en lugar de mysql_num_rows()
Esta guía explica por qué se recomienda abandonar el uso de la función mysql_num_rows()
en MySQL, que simplemente devuelve el número de filas en un resultado.
La desventaja de esta función es que es muy pesada para el servidor ya que es un bucle que recorre cada fila para contarlas.
Por ejemplo:
$SQLstr = "SELECT * FROM comentarios WHERE mostrar=1";
$r = mysql_query($SQLstr);
$num = mysql_num_rows($r);
MySQL tiene una función count()
que maneja esto y es mucho menos pesada. Use esto:
$SQLstr = "SELECT count(*) FROM comentarios WHERE mostrar=1"
$r = mysql_query($SQLstr);
$result = mysql_fetch_row($r);
$num = $result[0];
o
$SQLstr = "SELECT count(*) as total FROM comentarios WHERE mostrar=1"
$r = mysql_query($SQLstr);
$result = mysql_fetch_array($r);
$num = $result['total'];