Foros del Web » Programando para Internet » PHP »

Contar registros Count(*)

Estas en el tema de Contar registros Count(*) en el foro de PHP en Foros del Web. Hola, os cuento mi problema que consiste en que me da error al contar registros de una consulta. He estado buscando por todos los foros ...
  #1 (permalink)  
Antiguo 25/05/2004, 09:08
 
Fecha de Ingreso: abril-2002
Mensajes: 432
Antigüedad: 15 años, 7 meses
Puntos: 0
Contar registros Count(*)

Hola, os cuento mi problema que consiste en que me da error al contar registros de una consulta. He estado buscando por todos los foros manuales y demas pero no consigo que me funcione bien la consulta.

Os pongo como lo hago:

//Conexion con la base
mysql_connect("localhost","usuario","contraseña");

//Ejecutamos las sentencia SQL
$query=mysql_db_query("base_datos","select count(*) from villas where tipo='villas'");
$registros = mysql_db_query($query);

echo $registros;

Me arroja este error:

Warning: Wrong parameter count for mysql_db_query() in /home/newvilla/public_html/agents/protect/index.php on line 8

Y la line 8 concretamente es esta:
$registros = mysql_db_query($query);

Me pueden decir en que consiste el error, soy novato en php y no tengo mucha idea de esto. Gracias
  #2 (permalink)  
Antiguo 25/05/2004, 09:16
 
Fecha de Ingreso: agosto-2003
Mensajes: 68
Antigüedad: 14 años, 3 meses
Puntos: 0
Ok trata de utilizar el siguiente código. Creo que el problema esta en que no terminas la búsqueda por resultado....

$query=mysql_db_query("base_datos","select count(*) from villas where tipo='villas'");
$registros = mysql_query($query);
$registros = mysql_result($registros, 0, 0);
__________________
AdsParaTuWeb.com
  #3 (permalink)  
Antiguo 25/05/2004, 09:21
 
Fecha de Ingreso: agosto-2003
Mensajes: 68
Antigüedad: 14 años, 3 meses
Puntos: 0
Disculpa que te envié la variable $query mala... lo correcto es:

$query="select count(*) from villas where tipo='villas'”;
$registros = mysql_query($query);
$registros = mysql_result($registros, 0, 0);

echo $registros;
__________________
AdsParaTuWeb.com
  #4 (permalink)  
Antiguo 25/05/2004, 09:31
Avatar de mautik  
Fecha de Ingreso: mayo-2004
Mensajes: 149
Antigüedad: 13 años, 6 meses
Puntos: 0
usa esto
$numero= mysql_num_rows($registro);
echo $numero;



salu2
__________________
123...probando...probando...123
  #5 (permalink)  
Antiguo 25/05/2004, 09:44
 
Fecha de Ingreso: abril-2002
Mensajes: 432
Antigüedad: 15 años, 7 meses
Puntos: 0
Ahora me arroja esto:

Warning: mysql_result(): supplied argument is not a valid MySQL result resource in /home/newvilla/public_html/agents/protect/index.php on line 8


La linea 8 es:


$registros = mysql_result($registros, 0, 0);
  #6 (permalink)  
Antiguo 25/05/2004, 09:53
 
Fecha de Ingreso: abril-2002
Mensajes: 432
Antigüedad: 15 años, 7 meses
Puntos: 0
Si pongo lo que apunta Mautik
<?
//Conexion con la base
mysql_connect("localhost","user","password");

$query="select count(*) from villas where tipo='villas'";
$registros = mysql_query($query);
$registro= mysql_num_rows($registros);


echo $registro;

?>

me da este error


Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/newvilla/public_html/agents/protect/index.php on line 8

Última edición por jpalbox; 25/05/2004 a las 10:11
  #7 (permalink)  
Antiguo 25/05/2004, 10:10
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Te faltó seleccionar la Base de datos:

Código PHP:
<?
//Conexion con la base
mysql_connect("localhost","newvilla_diego","diego");

// Seleccinar la BD a trabajar.
mysql_select_db("nombre_bd");

// Tu sentencia SQL ..
$query="select count(*) from villas where tipo='villas'";
// Ejecutar la sentencia SQL
$resultado mysql_query($query);

// Obtener su resultado: Como COUT() de Msyql te arroja un sólo registro con el total de registros de esa consulta "condicional" .. lo accedes directo por nº de resultado dentro del "record-set" que arrojó la ejecución de esa consulta SQL.
$registrosmysql_result($resultado,0);

// Y lo usas ..
echo $registros;
?>
Lee sober las funciones de Msyql en:
www.php.net/mysql

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.

Última edición por Cluster; 25/05/2004 a las 10:28
  #8 (permalink)  
Antiguo 25/05/2004, 10:24
 
Fecha de Ingreso: abril-2002
Mensajes: 432
Antigüedad: 15 años, 7 meses
Puntos: 0
Cluster Puse el codigo como me dijiste y me da esto:


Fatal error: Call to undefined function: mysql_result_rows() in /home/newvilla/public_html/agents/protect/index.php on line 11

Cluster:

Puedes quitar los datos de la conexion, que yo los puse antes sin darme cuenta gracias
  #9 (permalink)  
Antiguo 25/05/2004, 10:27
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Si te fijas en los ejemplos que se han ido dando en este mensaje .. me equivoqué:

es mysql_result() .. no mysql_result_rows() .. (esa función no existe)


Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.

Última edición por Cluster; 25/05/2004 a las 10:28
  #10 (permalink)  
Antiguo 25/05/2004, 10:54
 
Fecha de Ingreso: abril-2002
Mensajes: 432
Antigüedad: 15 años, 7 meses
Puntos: 0
Pues sigue dandome error en esa linea

Warning: mysql_result(): supplied argument is not a valid MySQL result resource in /home/newvilla/public_html/agents/protect/index.php on line 11
  #11 (permalink)  
Antiguo 25/05/2004, 10:59
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Vamos a ver si localizamos el error exacto. Usa mysql_error() tal cual el ejemplo:

Código PHP:
<?
//Conexion con la base
mysql_connect("localhost","newvilla_diego","diego") or die (mysql_error());

// Seleccinar la BD a trabajar.
mysql_select_db("nombre_bd")  or die (mysql_error());

// Tu sentencia SQL ..
$query="select count(*) from villas where tipo='villas'";
// Ejecutar la sentencia SQL
$resultado mysql_query($query)  or die (mysql_error());

// Obtener su resultado: Como COUT() de Msyql te arroja un sólo registro con el total de registros de esa consulta "condicional" .. lo accedes directo por nº de resultado dentro del "record-set" que arrojó la ejecución de esa consulta SQL.
$registrosmysql_result($resultado,0);

// Y lo usas ..
echo $registros;
?>
Tal vez por ahí veamos cosas como "BD no existe" .. o "usuario/contraseña no válido" . .o error de sintax SQL en tal .. (no textualmente .. pero eso significará).

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.

Última edición por Cluster; 25/05/2004 a las 11:59
  #12 (permalink)  
Antiguo 25/05/2004, 11:10
 
Fecha de Ingreso: abril-2002
Mensajes: 432
Antigüedad: 15 años, 7 meses
Puntos: 0
ya va sobra un parentesis en el codigo que pusiste,

Muchisimas gracias por tu tiempo

Esta linea no la entiendo, es decir el cero para que sirve?

$registros= mysql_result($resultado,0);



//Conexion con la base
mysql_connect("localhost","user"," password") or (mysql_error);

// Seleccinar la BD a trabajar.
mysql_select_db("Base de Datos") or (mysql_error);

// Tu sentencia SQL ..
$query="select count(*) from villas where tipo='villas'";
// Ejecutar la sentencia SQL
$resultado = mysql_query($query) or die (mysql_error);

// Obtener su resultado: Como COUT() de Msyql te arroja un sólo registro con el total de registros de esa consulta "condicional" .. lo accedes directo por nº de resultado dentro del "record-set" que arrojó la ejecución de esa consulta SQL.
$registros= mysql_result($resultado,0);

// Y lo usas ..
echo $registros;


Última edición por jpalbox; 25/05/2004 a las 11:24
  #13 (permalink)  
Antiguo 25/05/2004, 12:06
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
En realidad.. me faltó un parentesis para que quede:

or die(mysql_error());

Sobre :

$registros= mysql_result($resultado,0);

Cuando tu haces una consutla SQL y la ejecutas por mysql_query() .. lo que obtienes es un "record-set" .. un conjunto de resultados agrupados en "filas/columnas" que equivaldría al resultado obtenido 0, 1, 2, .. etc. Empieza en 0 y dicha función puedes "acceder" a la fila/comlumna que desees directamente en ese resultado.

Como sabemos que "COUNT(*)" De SQL de Msyql obtiene UN sólo resultado (un sólo "record-set") .. pues tomo el valor de ese resultado (fila) .. y no uso "columna" por qué no es necesario si sólo usas una sóla llamada a función/campo en tu "SELECT".

Podrías usar 0 como 3er parámetro de esa función si lo ves más claro .. o incluso crear un ALIAS para COUNT(*) tipo COUNT(*) as total y ahí hacer:

Código PHP:
$sql="SELECT COUNT(*) as total FROM tabla";
$resultado=mysql_query($sql);
$total=mysql_result($resultado,0,"total"); 
Todo esto lo tienes detallado en el manual oficial de PHP:

www.php.net/mysql_result

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 14:36.