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($reg, 0, "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.