SoloCodigo
Programación Web y Scripting => PHP => Mensaje iniciado por: patoal en Miércoles 15 de Marzo de 2006, 17:03
-
hola tengo una duda ..espero que me puedan ayudar jeje :D
el tema es que nesesito saver cuantos usuarios registrados ahy en una web .. .. y no se como hacer para contar la cantidad de rows de una tabla .. y luego mostrarlo ..
-
Esto te ayudará:
mysql_affected_rows() (http://mx.php.net/manual/en/function.mysql-affected-rows.php)
-
No, mysql_affected_rows() te devuelve la cantidad de registros que se vieron afectados en la última consulta, es decir:
Si ejecutás una consulta como esta:
DELETE FROM usuarios WHERE eliminado = 1
mysql_affected_rows() te devuelve la cantidad de registros que fueron eliminados, también funciona con los INSERT y los UPDATE.
Lo que necesitás es CONTAR todos los registros que cumplan una determinada condición con una consulta como esta:
SELECT COUNT(*) FROM usuarios
Esa consulta te va a devolver un registro de una columna llamada "COUNT(*)" que contiene la cantidad de registros de la tabla usuarios.
Saludos.
-
y no serviria un "SELECT * FROM USUARIOS" (o sea todos los registrados)
y luego un mysql_affected_rows()?
-
Sí, de servir serviría, pero tené en cuenta que un SELECT * FROM usuarios te va a poner en el buffer todo lo que hay en la tabla de usuarios y sólo se precisa saber la cantidad de registros, por lo que vas a perder rendimiento.
mysql_affected_rows() te devuelve la cantidad de registros afectados en la última consulta. Hay otra función llamada mysql_num_rows() que devuelve la cantidad de registros que devolvió la última consulta, en el caso que expusiste tenés que usar esta función, no mysql_affected_rows().
Esto lo saqué de la documentación de PHP:
mysql_affected_rows() devuelve el número de filas afectadas en la ultima sentencia INSERT, UPDATE o DELETE sobre el servidor asociado con el identificador de enlace especificado. Si el identificador de enlace no ha sido especificado, se asume por defecto el último enlace.
Si la última sentencia fue un DELETE sin clausula WHERE, todos los registros han sido borrados de la tabla pero esta función devolvera cero.
Este comando no es efectivo para las sentencias SELECT, sino sólo para las sentencias que modifican registros. Para conseguir el número de lineas devueltos por un SELECT, usar mysql_num_rows().
Un saludo,