Foros del Web » Programando para Internet » PHP »

Contador de registro

Estas en el tema de Contador de registro en el foro de PHP en Foros del Web. Hola buenos días tengo una duda y espero puedan ayudarme. Necesito mostrar todos los registros existentes en una tabla. Adicional a eso necesito que me ...
  #1 (permalink)  
Antiguo 02/07/2014, 09:38
 
Fecha de Ingreso: abril-2014
Mensajes: 35
Antigüedad: 10 años
Puntos: 0
Contador de registro

Hola buenos días tengo una duda y espero puedan ayudarme.
Necesito mostrar todos los registros existentes en una tabla.
Adicional a eso necesito que me muestre otra información adicional.

este es el codigo que utilizo para mostrar los datos.
Código PHP:
Ver original
  1. <?php
  2. $link=mysql_connect("localhost","root","1234");
  3.  
  4.  
  5. $maxRows_despacho = 1000;
  6. $pageNum_despacho = 0;
  7. if (isset($_POST['pageNum_despacho'])) {
  8.   $pageNum_despacho = $_POST['pageNum_despacho'];
  9. }
  10. $startRow_despacho = $pageNum_despacho * $maxRows_despacho;
  11.  
  12. mysql_select_db("sipl_guarnicion");
  13. $query_despacho = "SELECT CVA, Maleta, Municipio, CVA_NUM FROM despacho  ";
  14. $query_limit_despacho = sprintf("%s LIMIT %d, %d", $query_despacho, $startRow_despacho, $maxRows_despacho);
  15. $despacho = mysql_query($query_limit_despacho) or die(mysql_error());
  16. $row_despacho = mysql_fetch_assoc($despacho);
  17.  
  18. if (isset($_POST['totalRows_despacho'])) {
  19.   $totalRows_despacho = $_POST['totalRows_despacho'];
  20. } else {
  21.   $all_despacho = mysql_query($query_despacho);
  22.   $totalRows_despacho = mysql_num_rows($all_despacho);
  23. }
  24. $totalPages_despacho = ceil($totalRows_despacho/$maxRows_despacho)-1;
  25.  
  26. ?>

Necesito que adicional me diga la cantidad exacta de registros existentes en esa tabla. Espero puedan ayudarme
  #2 (permalink)  
Antiguo 02/07/2014, 09:46
Avatar de h2swider  
Fecha de Ingreso: julio-2007
Ubicación: Ciudad de Buenos Aires
Mensajes: 932
Antigüedad: 16 años, 9 meses
Puntos: 194
Respuesta: Contador de registro

Si necesitas la cantidad de registros, y estas limitando los resultados con el "limit" vas a tener que hacer otra consulta en donde pidas el count() de la tabla.

Código SQL:
Ver original
  1. SELECT COUNT(1) cantidad FROM despacho
__________________
Codifica siempre como si la persona que finalmente mantedra tu código sea un psicópata violento que sabe donde vives
  #3 (permalink)  
Antiguo 02/07/2014, 10:02
 
Fecha de Ingreso: abril-2014
Mensajes: 35
Antigüedad: 10 años
Puntos: 0
Respuesta: Contador de registro

Alguna otra manera de realizar esa consulta que no sea como yo la realice? De verdad necesito ayuda y ya esto me lleva loca pues he buscado varios ejemplos y no consigo solucion
  #4 (permalink)  
Antiguo 02/07/2014, 10:04
Avatar de h2swider  
Fecha de Ingreso: julio-2007
Ubicación: Ciudad de Buenos Aires
Mensajes: 932
Antigüedad: 16 años, 9 meses
Puntos: 194
Respuesta: Contador de registro

No puedes realizar dos consultas como te mencione?
__________________
Codifica siempre como si la persona que finalmente mantedra tu código sea un psicópata violento que sabe donde vives
  #5 (permalink)  
Antiguo 02/07/2014, 10:34
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Contador de registro

Cita:
Iniciado por roxy9201 Ver Mensaje
Alguna otra manera de realizar esa consulta que no sea como yo la realice? De verdad necesito ayuda y ya esto me lleva loca pues he buscado varios ejemplos y no consigo solucion
Existe otra, pero creo que es esclusiva de MySQL, por lo que en ese caso la query no será aplicable a otros DBMS si luego decides migrar por ejemplo a SQL Server.
Código PHP:
Ver original
  1. $query = "SELECT SQL_CALC_FOUND_ROWS * FROM Users LIMIT 0, 100";
  2. mysql_query($query);
  3. $query = 'SELECT FOUND_ROWS()';
  4. mysql_query($query);

Infortunadamente, deberás si o si hacer una doble llamada a la base.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #6 (permalink)  
Antiguo 02/07/2014, 12:17
 
Fecha de Ingreso: abril-2014
Mensajes: 35
Antigüedad: 10 años
Puntos: 0
Respuesta: Contador de registro

h2swider Estoy tratando pero no me agarra el UNION.
  #7 (permalink)  
Antiguo 02/07/2014, 12:29
 
Fecha de Ingreso: abril-2014
Mensajes: 35
Antigüedad: 10 años
Puntos: 0
Respuesta: Contador de registro

He visto que cuando son varias consultas se hace con UNION pero me da este error
The used SELECT statements have a different number of columns
Si a la primera consulta le pongo solo un parametro funciona bien, pero necesito que me muestre todo.
Otra cosa necesito que el resultado de los registros se muestren en un cuadro de texto creen que sea posible?
Aqui les dejo mi consulta
Código PHP:
Ver original
  1. $query_despacho = ("SELECT d.CVA, d.Maleta, m.Municipio, d.CVA_NUM FROM despacho d JOIN municipio m ON d.Municipio = m.Cod_Municipio UNION SELECT COUNT() ID FROM despacho");
  #8 (permalink)  
Antiguo 02/07/2014, 13:04
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Contador de registro

UNION sólo sirve si las dos consultas SELECT devuelven la misma cantidad de columnas, del mismo tipo entre ambas, y en el mismo orden de datos por columna.

¿Revisaste lo que te propuese?

Creo que no, ni lo leíste, ¿no?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #9 (permalink)  
Antiguo 02/07/2014, 13:11
 
Fecha de Ingreso: abril-2014
Mensajes: 35
Antigüedad: 10 años
Puntos: 0
Respuesta: Contador de registro

No habia visto tu respuesta estoy desde el telefono y no me habia aparecido, para hacer esa consulta que me dices debo eliminar la mia???
  #10 (permalink)  
Antiguo 02/07/2014, 13:20
 
Fecha de Ingreso: abril-2014
Mensajes: 35
Antigüedad: 10 años
Puntos: 0
Respuesta: Contador de registro

Necesito tambien que la cantidad de registros que esten registrados en la tabla se muestre en un campo de texto se podra?
  #11 (permalink)  
Antiguo 02/07/2014, 13:22
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Contador de registro

Lo que te digo es que uses SQL_CALC_FOUND_ROWS, para lo cual si o si debes hacer dos consultas de tods modos.
Como lo estás haciendo, no peudes obtener la cantidad total de registros posibles a devolver, sin por lo menos hacer un COUNT() en la base.
Tal y como te lo dijeron...

O dos queries, o no podrás hacer lo que quieres (al menos no sin leer toda la tabla en memoria...)
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #12 (permalink)  
Antiguo 02/07/2014, 13:34
 
Fecha de Ingreso: abril-2014
Mensajes: 35
Antigüedad: 10 años
Puntos: 0
Respuesta: Contador de registro

La verdad no entiendo lo que me quiere decir.
  #13 (permalink)  
Antiguo 02/07/2014, 13:54
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Contador de registro

Estás pensando en PHP. Yo te estoy hablando de MySQL...

@h2swider ya te lo dijo al principio, que si usas LIMIT no puedes obtener el total de registros posibles de la query:
Cita:
Iniciado por h2swider Ver Mensaje
Si necesitas la cantidad de registros, y estas limitando los resultados con el "limit" vas a tener que hacer otra consulta en donde pidas el count() de la tabla.

Código SQL:
Ver original
  1. SELECT COUNT(1) cantidad FROM despacho
Para poder paginar los resultados usando LIMIT en la query (y eso es MySQL, no PHP), necesitas si o si obtener cuál sería el total posible de registros de la tabla. De lo contrario no podrás paginar, porque nosabrás jamás cuál es el total de pagoinas a generar.
Hay dos formas de hacerlo: 1) Haces dos consultas, uno para el total y la otra para paginar.
2) Haces dos consultas, la primera obteniendo un bloque de registros, y además pudiendo con la segunda obtener cuál es el total de registros. En este caso la primera query genera un calculo interno en MySQL para alimentar esa segunda función con datos.

En cualquier caso, si no haces dos consultas como mínimo, no se puede resolver bien.

Queda en tí ver qué quieres hacer.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: contador, mysql, registro, select, sql, tabla
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:36.