Foros del Web » Programando para Internet » PHP »

Saber numero de registros!

Estas en el tema de Saber numero de registros! en el foro de PHP en Foros del Web. Buenas, me encantaria saber el numero de registros de una base de datos. he intentado hacer lo siguiente: $sql1 = "SELECT COUNT (*) FROM generales"; ...
  #1 (permalink)  
Antiguo 15/11/2002, 06:05
 
Fecha de Ingreso: enero-2002
Mensajes: 1.872
Antigüedad: 22 años, 3 meses
Puntos: 3
Saber numero de registros!

Buenas, me encantaria saber el numero de registros de una base de datos. he intentado hacer lo siguiente:

$sql1 = "SELECT COUNT (*) FROM generales";

$registros = mysql_query($sql1);

y luego hago un:

<?echo("$registros");?>

pero no me muestra el numero. que debo modificar? que hago mal?

Perdonarme, pero hace muy poco que trabajo con php. gracias por vuestra paciencia!!

Salu2, y Gracias!
  #2 (permalink)  
Antiguo 15/11/2002, 06:32
Avatar de Phobos  
Fecha de Ingreso: abril-2001
Ubicación: sentado frente a un pc prestado
Mensajes: 375
Antigüedad: 23 años
Puntos: 2
prueba con

<? echo $registros; ?>
  #3 (permalink)  
Antiguo 15/11/2002, 06:37
Avatar de GaboMaKano  
Fecha de Ingreso: noviembre-2002
Ubicación: Viña del Mar - Chile
Mensajes: 323
Antigüedad: 21 años, 5 meses
Puntos: 2
contar registro

amigo ocupa esto:
$listar=mysql_query("select * from TU_TABLA",$db);
$items = mysql_affected_rows($db);
echo $items;

es la forma en que lo hago, hago un select a la tabla y luego muestro la cantidad de registros
__________________
Exito!!
:censura:
Visita Uganet.cl
  #4 (permalink)  
Antiguo 15/11/2002, 07:30
Avatar de Webstudio
Colaborador
 
Fecha de Ingreso: noviembre-2001
Ubicación: 127.0.0.1
Mensajes: 3.499
Antigüedad: 22 años, 5 meses
Puntos: 69
Re: Saber numero de registros!

Cita:
Mensaje Original por ferranWEB
Buenas, me encantaria saber el numero de registros de una base de datos. he intentado hacer lo siguiente:

$sql1 = "SELECT COUNT (*) FROM generales";

$registros = mysql_query($sql1);

y luego hago un:

<?echo("$registros");?>

pero no me muestra el numero. que debo modificar? que hago mal?

Perdonarme, pero hace muy poco que trabajo con php. gracias por vuestra paciencia!!

Salu2, y Gracias!
Bueno, esto te sucede porque no tienes aún claros los conceptos de PHP. Paso a explicarte.
La primera parte está bién... para ejecutar un Query a la base de datos, haces algo como:
Código PHP:
<?
$query 
"SELECT campo FROM tabla";
$registros mysql_query($query);
?>
De esta manera, lo que has hecho es correr el query en la base, obteniendo los datos y asignando en la variable $registros, un Resource Link (algo como un "puntero" hacia los resultados del Query en memoria).
Es por ello que cuando imprimes el valor de esta variable, no tengas la cantidad de registros. Para obtener la cantidad de registros en tu Resource Link, tan solo tienes que hacer:
Código PHP:
<?
echo mysql_num_rows($registros);
?>
Ahora, esto es válido si lo que quieres es obtener los datos de la base y ADEMAS conocer la cantidad de registros. Pero si SOLAMENTE quisieras saber la cantidad de registros, existe otro método más eficiente :
Código PHP:
<?
/* Modificamos un poco el Query 
   y lo ejecutamos contra la base */
$query "SELECT COUNT(*) as cantidad FROM tabla";
$reg mysql_query($query);
/* Aqui recuperamos la columna llamada "cant"
   que se encuentra en la fila de resultados 0*/
$cant mysql_result($reg0"cant");
echo 
$cant;
?>
De esta manera, no hacemos que mySQL nos devuelva datos (haciendo más uso de memoria y recursos de CPU), sino que le pedimos simplemente que "cuente" la cantidad de registros y nos devuelva solo ese número.

Saludos.

Última edición por Webstudio; 15/11/2002 a las 07:33
  #5 (permalink)  
Antiguo 21/05/2004, 11:24
 
Fecha de Ingreso: mayo-2002
Mensajes: 486
Antigüedad: 21 años, 11 meses
Puntos: 0
web estudio, esta bueno el script, solo que se te pasó un error de sintaxis, ..deveria quedar asi:
-----------------------------------------------
<?
/* Modificamos un poco el Query
y lo ejecutamos contra la base */
$query = "SELECT COUNT(*) as cant FROM tabla";
$reg = mysql_query($query);
/* Aqui recuperamos la columna llamada "cant"
que se encuentra en la fila de resultados 0*/
$cant = mysql_result($reg, 0, "cant");
echo $cant;
?>
-----------------------------------------------

Saludos
__________________
Sistemass.com - Centro de capacitación profesional
http://www.sistemass.com
  #6 (permalink)  
Antiguo 22/05/2004, 05:31
 
Fecha de Ingreso: mayo-2004
Ubicación: España
Mensajes: 38
Antigüedad: 19 años, 11 meses
Puntos: 0
Me decanto por el sistema :
$query = "select * from $tabla ";
$result = mysql_query($query);
$num_results = mysql_num_rows($result);
echo $num_results;

Última edición por jesusangel; 22/05/2004 a las 05:32
  #7 (permalink)  
Antiguo 22/05/2004, 22:50
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
jesusangel ..

Si el objetivo final de la consulta a tu BD es para obtener un total de registros .. el método SQL (COUNT(*)) es más optimo.

mysql_num_rows() realiza la consulta SQL -integra- y cuenta sus resultados . .Esto biene bien cuando vas a -ademas de- obtener ese total, vas a usar esos registros (datos) para presentarlos/procesarlos.

Pero, si sólo necesitas el total. COUNT(*) de SQL obtiene -un sólo- resultado con el total (y el proceso del cálculo del total lo hace Mysql .. no PHP). Por ende ese resultado lo procesas en menos tiempo que realizando la consulta SQL integra y haciendo que "PHP" cuente el total de registros arrojados con la función mysql_num_rows()

No es cuestión de gustos .. sino de conocer como funciona ambos métodos y según la situación usar uno u otro método.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #8 (permalink)  
Antiguo 23/05/2004, 04:31
 
Fecha de Ingreso: mayo-2004
Ubicación: España
Mensajes: 38
Antigüedad: 19 años, 11 meses
Puntos: 0
Efectivamente, mis conocimientos sobre php y mysql son escasos, y solo sé lo que hasta ahora me ha hecho falta, por lo que siempre el saber cuanto registros tenía la consulta era información adicional para que quedara más bonito, el objetivo de uan consulta para mí siempre ha sido mostrar los datos que devolvía la consulta.

Un saludo
  #9 (permalink)  
Antiguo 23/05/2004, 09:15
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Ok, jesusangel ..

Pues ya conces ahora las diferencias entre ambos métodos .. Un ejemplo de cuando usar "count" sería el de sistemas de paginado donde requieres obtener el total de registros para ofrecer el nº de páginas y luego -sólo- mostar los N registros que le pertenecen a esa página. En ese caso .. necesitas sólo de ese dato "el total de registros" .. pues la presentación de esos datos de la consulta no es referente al total sino a un rango de registros (en Mysql .. LIMIT .. X,N) ...

Otro ejemplo: mostrar los N registros que tengas por categoría en un listado de registros que están clasificados (GRUOP BY ...) algún campo que defina su clasificación.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #10 (permalink)  
Antiguo 24/05/2004, 07:29
Avatar de Phobos  
Fecha de Ingreso: abril-2001
Ubicación: sentado frente a un pc prestado
Mensajes: 375
Antigüedad: 23 años
Puntos: 2
es increible como se les da continuidad y vigencia a los mensajes en este grupo.

imaginense que este hilo partio el 15-11-2002 10:05 AM

saludos
  #11 (permalink)  
Antiguo 24/05/2004, 09:07
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Mensaje Original por Phobos
es increible como se les da continuidad y vigencia a los mensajes en este grupo.

imaginense que este hilo partio el 15-11-2002 10:05 AM

saludos
Siempre hay gente nueva que entra a este mundillo. Y .. para el que use el buscador -a futuro- del foro .. espero que algo le sirvan todos estos comentarios sobre "contar regristros .. tra la la".

Un saludo,
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




La zona horaria es GMT -6. Ahora son las 17:06.