Sacar total de filas mysql
#1

Hola, tengo una duda, seria de en un mysql_query (con un SELECT....), sacar el total de filas que estan afectadas, un ejemplo:
de un mysql_query(1, "SELECT * FROM users"); saber cuantos usuarios hay en la bd.

Solo es eso, chao :3
Reply
#2

Puedes aplicar mysql_num_rows al resultado obtenido mediante esa query y te da el nъmero total de filas, lo que vendrнa a ser la cantidad total de usuarios.
Reply
#3

Hay una alternativa, y es que MySQL opere directamente la cuenta de los datos que pides, en la propia consulta. Es bastante interesante que ojees un poco las funciones que puede tener tu sistema gestor de base de datos, por que MySQL a parte de crear una base de datos tambiйn es un buen gestor de inmensas cantidades de datos y delegar estas operaciones en el, pues permite que se ejecuten de una manera bastante eficaz y eficiente.

Prueba esta consulta.

SELECT COUNT(*)
FROM users;
Reply
#4

Quote:
Originally Posted by [DOG]irinel1996
Посмотреть сообщение
Puedes aplicar mysql_num_rows al resultado obtenido mediante esa query y te da el nъmero total de filas, lo que vendrнa a ser la cantidad total de usuarios.
Algo asi te refieres?
Код:
mysql_query(1, "SELECT * FROM users");
new valor = mysql_num_rows();
Quote:
Originally Posted by kirk
Посмотреть сообщение
Hay una alternativa, y es que MySQL opere directamente la cuenta de los datos que pides, en la propia consulta. Es bastante interesante que ojees un poco las funciones que puede tener tu sistema gestor de base de datos, por que MySQL a parte de crear una base de datos tambiйn es un buen gestor de inmensas cantidades de datos y delegar estas operaciones en el, pues permite que se ejecuten de una manera bastante eficaz y eficiente.

Prueba esta consulta.

SELECT COUNT(*)
FROM users;
No conocia ese parametro, se usaria asi?

Код:
mysql_query(1, "SELECT COUNT(*) FROM users");
Vale hasta ahi bien, pero como sacaria las columnas, usando la funcion mysql_num_rows como dice arriba Irinel?
Reply
#5

No, deberнas de sacar directamente el valor. Si quieres sacar las columnas tambiйn entonces debes poner lo que quieres, todas las columnas y tambiйn que cuente cuantas filas saca asignбndole un alias. Aunque para que te lies menos la opciуn de iriniel te vendrнa mejor, es mas sencillo quizбs operar con las funciones del plugin. Aunque tambiйn es interesante que te busques la vida un poco con estas funciones, pueden sacarte de mбs de un apuro.
Reply
#6

Quote:
Originally Posted by kirk
Посмотреть сообщение
No, deberнas de sacar directamente el valor. Si quieres sacar las columnas tambiйn entonces debes poner lo que quieres, todas las columnas y tambiйn que cuente cuantas filas saca asignбndole un alias. Aunque para que te lies menos la opciуn de iriniel te vendrнa mejor, es mas sencillo quizбs operar con las funciones del plugin. Aunque tambiйn es interesante que te busques la vida un poco con estas funciones, pueden sacarte de mбs de un apuro.
Entonces tipo

variable = mysql_query(1, "SELECT COUNT(*) FROM users"); ?

solo necesito saber cuantas filas hay afectadas y por ejemplo luego un printf("Cargados %i usuarios", variable);
Reply
#7

Vale ya encontre la solucion, al final despues de
Код:
mysql_query(1, "SELECT COUNT(*) FROM users");
mysql_store_result();
puse un
Код:
new columnas[512], total;
mysql_fetch_row(columnas);
total = strval(columnas);
Gracias igualmente
Reply
#8

El hacer una consulta mal hecha (para utilizar de la forma en que te dijo irinel) harб que ocupes mucha memoria adicional y el uso del procesador aumente de una forma totalmente innecesaria. Como dijo kirk, la sentencia "COUNT" esta hecha para este tipo de necesidades. Devuelve una columna con la cantidad de resultados obtenidos.
Reply
#9

Hace mucho que no ando en el plugin MySQL del SA-MP, pero en php por ejemplo puedes hacer esto (lo que suele hacer casi todo el mundo):
PHP код:
$result mysqli_query($connectionLink"SELECT * FROM users");
$total mysqli_num_rows($result);
mysqli_free_result($result);
echo 
"Existe un total de ".$total." usuarios en la base de datos"
Es cierto que lo anterior SELECCIONA TODO y ocupa mбs memoria, pero si quieres algo mбs optimizado puedes aplicar la funciуn COUNT como ya dijeron antes, entonces:
PHP код:
$result mysqli_query($connectionLink"SELECT COUNT(*) FROM users");
$total mysqli_fetch_row($result);
mysqli_free_result($result);
echo 
"Existe un total de ".$total[0]." usuarios en la base de datos."
En el php yo he usado mysqli_fetch_row, en SA-MP se puede usar la misma funciуn si no me equivoco (junto a sscanf).

Adaptar el cуdigo anterior para SA-MP es muy sencillo, pero si tienes problemas, pregunta aquн y te responderй.

Un saludo.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)