Foros del Web » Programando para Internet » PHP »

Como contar el numero de filas de una DB

Estas en el tema de Como contar el numero de filas de una DB en el foro de PHP en Foros del Web. Hola que tal tengo una consulta, no soy profecional de php estoy aprendidendo, pero medio por contar el numero de filas de una consulta que ...
  #1 (permalink)  
Antiguo 27/04/2010, 15:58
 
Fecha de Ingreso: abril-2010
Mensajes: 23
Antigüedad: 14 años
Puntos: 0
Como contar el numero de filas de una DB

Hola que tal tengo una consulta, no soy profecional de php estoy aprendidendo, pero medio por contar el numero de filas de una consulta que realizo a la Base de Datos.

Existe una funcion llamada mysql_fetch_row que cuenta el numero de de campos de una fial, o numero de registros de una fila. y lo que yo quiero es que en cada fila me aparesca numerada. ejemplo:

Mi tabla es esta

Mostrar nombres

Clara Martinez
Alfonzo Hernandez
Ros Calva
Pepe Botella
Arturo Botella
Carlos Marchena
Alejandra Trejo

Numero de registros = 7

y lo que quiero es lo sig

Mostrar nombres

1 Clara Martinez
2 Alfonzo Hernandez
3 Ros Calva
4 Pepe Botella
5 Arturo Botella
6 Carlos Marchena
7 Alejandra Trejo
n registros
..
..
Numero de registros = 7

me imagino que es con un siclo for, despues de intentarle de varias maneras, nadamas no he podido por eso recurro a ustedes, aqui les dejo mi codigo.

<?php
$dp = mysql_connect("localhost","nombredb","password");
mysql_select_db("sql_profi");
$sql = "SELECT * FROM direcciones";
$resultado = mysql_query($sql);
$contador=mysql_num_rows($resultado);
while ($row = mysql_fetch_assoc($resultado)){
echo "$row[Nombre] $row[Apellido]<br>\n";
}
echo "<br><b>Numero de registros = $contador </b>";
mysql_close($dp);
?>

de antemano muchas gracias :)
  #2 (permalink)  
Antiguo 27/04/2010, 16:22
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Como contar el numero de filas de una DB

si usas una lista ordenada es mas sencillo... ;)

Código HTML:
<ol>
  <li>uno</li>
  <li>dos</li>
  <li>tres</li>
</ol> 
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 27/04/2010, 16:49
 
Fecha de Ingreso: marzo-2010
Mensajes: 152
Antigüedad: 14 años, 1 mes
Puntos: 1
Respuesta: Como contar el numero de filas de una DB

Intenta con algo asi


Código PHP:
Ver original
  1. $nro_fila = 0;
  2.  
  3. while($row= mysql_fetch_assoc($resultado)) {
  4.  
  5.     $nro_fila =$nro_fila+1;
  6.  
  7.     $data[] = array_merge($row, array('nro_fila'=>$nro_fila));
  8. }
  9.  
  10.  $datos=array('nro_fila'=>'<b>Num</b>',
  11.                 'nombre'=>'<b>Nombre</b>',
  12.                 'apellido'=>'<b>Apellido</b>',
  13.               );
  14.  
  15.  
  16. echo $datos;
  #4 (permalink)  
Antiguo 27/04/2010, 19:14
Avatar de dargor  
Fecha de Ingreso: octubre-2009
Mensajes: 134
Antigüedad: 14 años, 6 meses
Puntos: 2
Respuesta: Como contar el numero de filas de una DB

Me parece que con un contador dentro del while y que vaya imprimiento el numero haría el truco, aunque la idea de pateketrueke parece buena tambien
  #5 (permalink)  
Antiguo 27/04/2010, 22:32
 
Fecha de Ingreso: abril-2010
Mensajes: 23
Antigüedad: 14 años
Puntos: 0
Respuesta: Como contar el numero de filas de una DB

Despues de estar haciendo muchas pruebas con diferentes funciones, sabia que no estava la respuesta en las funciones integradas de php, todo estava en un siclo for que contara cada uno de nuestros campos y lo formatera como yo queria, les agradesco sus respuestas, de hecho avia visto unas consultas similares a la mia, solo que ahi hera con la funcion mysql_fetch_row ya que querian saber el numero de registros de una fila.

Lo unico que hice fue eliminar el siclo while ya que me lio con dicho siclo, se me hace mas facil el for, bueno despues de ahi, introduci la variable
$row = mysql_fetch_assoc($resultado); dentro del siclo, y lo formatie con un echo que mostrara mis valores requeridos.



<?php
$dp = mysql_connect("localhost","userDB","password");
mysql_select_db("sql_profi");
$sql = "SELECT * FROM direcciones";
$resultado = mysql_query($sql);
$contador=mysql_num_rows($resultado);
for($i=0;$i<=$row;$i++){
$row = mysql_fetch_assoc($resultado);
echo "<b>$i</b> $row[Nombre] $row[Apellido]<br>\n";
}
echo "<br><b>Numero de registros = $contador </b>";
mysql_close($dp);
?>

Lo unico que me falta es que empiece desde el numero 1, ya que comienza des del indice 0 asi:

Mostrar nombres

0 Clara Martinez
1 Alfonzo Hernandez
2 Ros Calva
3 Pepe Botella
4 Arturo Botella
5 Carlos Marchena
6 Alejandra Trejo
7

Numero de registros = 7


Aunque ya le dije al for que mi variable $i=1 no me muestra nada, si le digo que mi variable $i=0 si funciona. lo checare hasta lograrlo, tambien lo intentare con while.

Gracias a todos por tomarce un tiempito para responder a mi pregunta, y a pateketrueke gracias amigo pero lo que quiero es dinamicamente, ya que si es una DB demaciado grande seria muy pesando hacer una lista de 1 en 1, por lo tanto tiene que ser dinamicamente.

A todos los demas les agradesco y seguire intentandolo.
y si les puedo ayudar en algo con gusto por aqui ando.

bye..
  #6 (permalink)  
Antiguo 27/04/2010, 23:46
 
Fecha de Ingreso: febrero-2010
Ubicación: Medellín
Mensajes: 20
Antigüedad: 14 años, 2 meses
Puntos: 1
Respuesta: Como contar el numero de filas de una DB

En realidad la funcion que cuenta el numero de filas es mysql_num_rows($consulta); fetch es para leer.

Si la numeracion es indiferente solo tenes que poner un contador que inicialice en 1 y sume cada vez que entra en el ciclo.

<?php
$dp = mysql_connect("localhost","nombredb","password");
mysql_select_db("sql_profi");
$sql = "SELECT * FROM direcciones";
$resultado = mysql_query($sql);

$i = 1;
while ($row = mysql_fetch_assoc($resultado)){
echo "$i." ".$row[Nombre]." ".$row[Apellido]."<br>\n";
$i++;
}
echo "<br><b>Numero de registros = ".$i." </b>";
mysql_close($dp);
?>
  #7 (permalink)  
Antiguo 28/04/2010, 00:59
 
Fecha de Ingreso: abril-2010
Mensajes: 23
Antigüedad: 14 años
Puntos: 0
Respuesta: Como contar el numero de filas de una DB

Bueno solo entro para dar la solucion que dnetix ha dado, les comento que ya avia encontrado la solucion despues de andarle buscando, y es la misma que nos muestra ahora nuestro amigo dnetix,

<?php
$dp = mysql_connect("localhost","nombreDB","password");
mysql_select_db("sql_profi");
$sql = "SELECT * FROM direcciones";
$resultado = mysql_query($sql);
$contador=mysql_num_rows($resultado);
$i=1;
while($row = mysql_fetch_assoc($resultado)){
echo "<b>$i</b> $row[Nombre] $row[Apellido]<br>\n";
$i++;
}
if ($contador > 0){
echo "<br><b>Numero de registros = $contador </b>\n";
} else {
echo "<br><b>No hay datos en la Base de datos</b>\n";
}
mysql_close($dp);
?>


Con el siclo for ya pude tambien solo que el formateado de los datos no lo he podido hacer, ya que me aparece el contador desde 0, y nesecita comenzar desde 1, a qui les dejo el codigo aver si nuestro buen amigo dnetix nos puede acesorar, hacer lo mismo pero con un siclo for.

<?php
$dp = mysql_connect("localhost","nombreDB","password");
mysql_select_db("sql_profi");
$sql = "SELECT * FROM direcciones";
$resultado = mysql_query($sql);
$contador=mysql_num_rows($resultado);
//$row = mysql_fetch_assoc($resultado); //si dejo esta variable fuera me hace un siclo for n veces pero si aparecen los valores en forma decendente, solo que imprime un solo valor de la tabla
for($i=0; $i <= $row; $i++) //la variable $i tiene que ser igual a 0 de lo contrario solo muestra un dato, o no muestra nada
{
$row = mysql_fetch_assoc($resultado);
echo "<b>$i</b> $row[Nombre] $row[Apellido]<br>\n";
}
echo "<br><b>Numero de registros = $contador </b>";
mysql_close($dp);
?>

Gracias

Etiquetas: contar, filas, numero
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 05:23.