Foros del Web » Programando para Internet » PHP »

como obtener total de filas?

Estas en el tema de como obtener total de filas? en el foro de PHP en Foros del Web. Holas a todos, ace unos dias qe he estado investigando mi problema y no he tenido resultados muy positivos, el asunto es qe tengo en ...
  #1 (permalink)  
Antiguo 06/08/2007, 14:04
 
Fecha de Ingreso: marzo-2007
Mensajes: 39
Antigüedad: 17 años, 1 mes
Puntos: 0
como obtener total de filas?

Holas a todos, ace unos dias qe he estado investigando mi problema y no he tenido resultados muy positivos, el asunto es qe tengo en una base de datos datos de noticias y cada una tiene su ID con autoincrement, el asunto es qe en una parte de la web necesito mostrar el total de noticias, por ende utilize
Código PHP:
"SELECT Count(ID) FROM noticias" 
el asunto es qe como resultado me entrega count(id)30 (el 30 es la cantida de filas) pero yo lo que necesito es tan solo el NUMERO 30, osea no kiero qe me entrege count(id)30 me expliko? =/ puesto qe necesito tan solo el numero para utilizarlo en una funcion donde utilizare una verificacion de datos(pero eso es otro cuento) existira alguna consulta o alguna funciion php qe me entrege tan solo el numero? tambie utilize
Código PHP:
SELECT MAX(IDFROM noticias 
el cual me entrega el ultimo ID(puesto qe eso = me serviria) pero me lo entrega en el mismo formato (osea max(id)30) =/ por ende no me sirve intente, porsiacaso, forzar la variable y acer qe el resultado fuera entero pero al acerlo me entregaba un 1 =/, tambien leei en el foro sobre INSERT_ID() algo asi, el cual entregaba el ultimo ID qe hay en la base de datos, pero esta tanpo me funciono, y luego conversando con un amigo, me afirmo qe esta ultima funcion servia solo en el momento en qe uno insertaba algun dato =/

entonces?? habra alguna otra funcion o consulta qe me entrege el total de filas de la tabla o por ultimo me determine el ultimo ID en la base de datos en formato numerico??
  #2 (permalink)  
Antiguo 06/08/2007, 14:31
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Re: como obtener total de filas?

y por qué no lo hacés así?

$consulta = "SELECT Count(ID) FROM noticias";
$resultado = mysql_query($consulta);
list($cantidad) = mysql_fetch_row($resultado);

En $cantidad tenés la cantidad que te devuelve COUNT.


Saludos.
  #3 (permalink)  
Antiguo 06/08/2007, 14:57
Avatar de _ssx  
Fecha de Ingreso: mayo-2003
Ubicación: mX
Mensajes: 683
Antigüedad: 20 años, 11 meses
Puntos: 60
Re: como obtener total de filas?

y no te sirve ?

http://www.php.net/mysql_num_rows
__________________
Escribe tu código de forma que refleje, y saque a relucir,lo mejor de tu carácter personal
www.oscararzola.com/blog
Principios de un programador
  #4 (permalink)  
Antiguo 06/08/2007, 15:08
 
Fecha de Ingreso: enero-2006
Mensajes: 293
Antigüedad: 18 años, 3 meses
Puntos: 4
Re: como obtener total de filas?

Código PHP:
$query="Select count(ID) as cuenta from noticias";
$result=mysql_query($query);
$row=mysql_fetch_array($result);

$cantidad=$row["cuenta"];
echo 
$cantidad
  #5 (permalink)  
Antiguo 06/08/2007, 19:45
 
Fecha de Ingreso: mayo-2005
Mensajes: 103
Antigüedad: 18 años, 11 meses
Puntos: 1
Re: como obtener total de filas?

Cita:
Iniciado por _ssx Ver Mensaje
Como aqui te dicen, esta opcion es mas comoda.

Código PHP:
$query="select * from noticias";
$result=mysql_query($query); 
$total_filas=mysql_num_rows($result); 
  #6 (permalink)  
Antiguo 06/08/2007, 21:00
Avatar de nicolaspar  
Fecha de Ingreso: noviembre-2004
Ubicación: Villa Ballester Bs-As|Ar
Mensajes: 2.002
Antigüedad: 19 años, 5 meses
Puntos: 34
Re: como obtener total de filas?

Hoy estoy con los datos extras (que muchos conocerán). Una excelente alternativa mucho mas eficiente que mysql_num_rows, es found_rows() de mysql. Se usa de la siguiente manera:

Código PHP:

$sql 
"select SQL_CALC_FOUND_ROWS * from noticias"#Se pone luego del select SQL_CALC_FOUND_ROWS 
$r mysql_query($sql );

$rTotal mysql_query("select found_rows()");
$rsTotal mysql_fetch_row($rTotal);
$total $rsTotal[0];
mysql_free_result($rTotal); 
Aunque no parezca es mucho más veloz y esta mejor preparado para esta tarea.
__________________
Mi punto de partida es Que Bueno Lo Nuevo
  #7 (permalink)  
Antiguo 07/08/2007, 06:20
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Re: como obtener total de filas?

nicolaspar, muy buena esa, no la conocía.

En cualquier caso, creo que es importante destacar que JAMÁS hay que pedir datos si lo único que se necesita es hacer un conteo.

Hacer
SELECT * from tabla

solo para saber la cantidad de resultados es la forma menos eficiente de hacerlo. Para eso existe COUNT, o la opción found_rows() (que acabo de conocer y ya me pongo a investigar


Saludos.
  #8 (permalink)  
Antiguo 07/08/2007, 14:41
 
Fecha de Ingreso: marzo-2007
Mensajes: 39
Antigüedad: 17 años, 1 mes
Puntos: 0
Re: como obtener total de filas?

UPSSS OLBIDE UN GRAN DETALLES AMIGOS es qe no realiso las conexiones de esa forma, pues utilizo ADODB para conectarme a la base de datos, por ende no puedo utilizar sintaxis como mysql_num_rows() =/ lo que acompleja mi problema, por ende no pode aplicar ninguna de las soluciones mensionadas
Miren actual mi codigo de conexion con adodb esta asi

Código PHP:
 require_once 'adodb.inc.php'//requerido x adodb
         
require_once 'datos.php';//contine los datos para conectar
 
         
$conexion ADONewConnection(db_driver);
         
$conexion->debug true;
         
$conexion->Connect(serveruserpaswdb); //la conexion a la DB
$id_max $conexion->Execute('SELECT count(ID) FROM noticias'); //sintaxis de la consulta
        
echo $id_max;//imprime el resultado 
y como mensione anteriormente me entrega como resultado "count(id)30" y pues yo tan solo necesito el numero no todo ese formato con letras y cosas
  #9 (permalink)  
Antiguo 07/08/2007, 14:57
Avatar de _ssx  
Fecha de Ingreso: mayo-2003
Ubicación: mX
Mensajes: 683
Antigüedad: 20 años, 11 meses
Puntos: 60
Re: como obtener total de filas?

Pues, yo haria algo sucio como..

Código PHP:
<?php
require_once 'adodb.inc.php'//requerido x adodb
         
require_once 'datos.php';//contine los datos para conectar
 
         
$conexion ADONewConnection(db_driver);
         
$conexion->debug true;
         
$conexion->Connect(serveruserpaswdb); //la conexion a la DB
$id_max $conexion->Execute('SELECT count(ID) FROM noticias'); //sintaxis de la consulta

$cortar split(")",$id_max);
$minumero $cortar[1];
echo 
$minumero//imprime el numero
?>
__________________
Escribe tu código de forma que refleje, y saque a relucir,lo mejor de tu carácter personal
www.oscararzola.com/blog
Principios de un programador
  #10 (permalink)  
Antiguo 07/08/2007, 15:25
 
Fecha de Ingreso: marzo-2007
Mensajes: 39
Antigüedad: 17 años, 1 mes
Puntos: 0
Re: como obtener total de filas?

SOLUCIONADO YAJUUUUU,,, bueno gracias a nicolas qe me dijo qe revisara el array con print_r lo qe me permitio ver todo el recorrido y asi identificar como extraer tan solo el Numero de la consulta :D

<_SSX no conosco eso de 'split' xD asiqe voy averigurar sobre aquello Graciassss>

bueno como resultado para obtener el total de filas con ADODB queda asi
Código PHP:
 require_once 'adodb.inc.php'//requerido x adodb
         
require_once 'datos.php';//contine los datos para conectar
 
         
$conexion ADONewConnection(db_driver);
         
$conexion->debug true;
         
$conexion->Connect(serveruserpaswdb); //la conexion a la DB
$id_max $conexion->Execute('SELECT count(ID) FROM noticias'); //sintaxis de la consulta
        
echo $id_max->fields['0'];     //imprime el total de filas qe existen en la tabla 
Gracias a todos por la ayuda
  #11 (permalink)  
Antiguo 07/08/2007, 15:38
Avatar de Genetix  
Fecha de Ingreso: febrero-2002
Ubicación: Lima - Perú
Mensajes: 1.600
Antigüedad: 22 años, 2 meses
Puntos: 45
Re: como obtener total de filas?

Hola Yonmax

Solo para aclarar que al ponerle un alias a count() y todo lo solucionabas
SELECT count(ID) as maximo FROM noticias (los alias son válidos para todas las base de datos )
echo $id_max->fields['maximo'];

Saludos!
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 00:45.