| |||
La forma más rápida sería usar SQL y su sentencia COUNT() Código PHP: Un saludo,
__________________ Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo. |
| |||
Puede ser la manera más óptima, pero usando count no obtienes los datos del resto de los campos. Por tanto, según que necesites, habría que usar COUNT o mysql_num_rows. Saludos!! |
| |||
mm .. Pero si que puedes obtener el resto de campos: Código PHP: En "total" tendrías el total (hice un alias con AS ..) .. (eso sí .. repetido en la misma "columna" de resultados) .. y luego el resto de campos que quieras hacer referencia .. No he hecho pruebas de rendimiento .. pero COUNT() lo hace el motor de BBDD .. mientras que mysql_num_rows() es PHP el que espera a tener el resultado para "contar" lo que recibió .. En los casos que necesitemos los datos y el total es recomendable usar mysql_num_rows() .. así no ejecutamos otra consulta SQL. Un saludo,
__________________ Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo. |
| ||||
Existe una manera mas "óptima" se saber el total de un query y consiste de usar SQL_CALC_FOUND_ROWS y FOUND_ROWS, esto según el manual de mysql y pruebas que he hecho. La manera sería: Código PHP:
__________________ Mi punto de partida es Que Bueno Lo Nuevo |
| ||||
Si, están buenas (de nada ![]()
__________________ Mi punto de partida es Que Bueno Lo Nuevo |
| |||
Cita: Ok, tomo nota .. yo hasta la fecha por "compatiblidad (de versión de Mysql)" Siempre usé COUNT() (que dá bastante mejor resultado que mysql_num_rows()).
Iniciado por nicolaspar ![]() Si, están buenas (de nada ![]() Aunque también hay que tener claro que mysql_num_rows() cuenta sobre el resultado .. así que en muchos casos que se espera "1 o 0" resultados y lo que se pueda obtener se va a usar (se va acceder al resultado) .. ahí tal vez no valga la pena liarse con "COUNT()" ni más SQL como el que presentas. En definitiva, .. cada caso hay que evaluarlo. Lo importante (y bonito xD) es que hay alternativas y más o menos está comentado para que casos usar unas u otras opciones. Un saludo,
__________________ Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo. |
| ||||
El tema del count(*) es que en un paginado (donde mas se aplica) no sirve, ya que te dará el número de registros en la pagina y no el total de registros en la tabla. Y el SQL_CALC_FOUND_ROWS no, cuenta todo sacando el limit, por lo que resulta una alternativa a solo el mysql_num_rows, o bien a un count independiente de esa consulta. Eso yo no lo aclare en el ejemplo y es una cualidad muy interesante, nuevamente, con el limit sería así: Código PHP:
__________________ Mi punto de partida es Que Bueno Lo Nuevo |