Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] PHP OO Error en Paginador PHP Error Resource id #6

Estas en el tema de Error en Paginador PHP Error Resource id #6 en el foro de PHP en Foros del Web. Hola buenas tardes a todos, bueno hoy los vengo a molestar un rato con un problema que me tiene como loco no se que sera, ...
  #1 (permalink)  
Antiguo 31/01/2014, 14:07
 
Fecha de Ingreso: septiembre-2008
Mensajes: 38
Antigüedad: 15 años, 7 meses
Puntos: 0
Error en Paginador PHP Error Resource id #6

Hola buenas tardes a todos, bueno hoy los vengo a molestar un rato con un problema que me tiene como loco no se que sera, el caso es este:

estoy haciendo un paginador para mi web y bueno la cosa es que filtra bien los resultados y todo, pero lo que no me arroja bien es el numero de paginas disponibles para navegar.

estuve analizando un poco de code para ver donde estaba mi error y logre dar con el, antes que todo les dejare todo el code de ese php.

Código PHP:
Ver original
  1. <?php
  2.  
  3. include('conex.php');
  4. include('funciones.php');
  5.  
  6.  
  7. $cant_reg = 5;
  8. $num_pag = $_GET["pagina"];
  9.  
  10. $letra = $_GET['letra'];
  11. $letra = strip_tags($letra);
  12. $totalletra = strlen($letra);
  13.  
  14. if ($totalletra < 3) {
  15. if($letra != '09')
  16. {
  17. $result_letra = mysql_query("SELECT * FROM anime WHERE nombre like '$letra%' AND mostrar = 0 ", $conexion);
  18. } else {
  19. $result_letra = mysql_query("SELECT * FROM anime WHERE nombre REGEXP '^[0-9+\.]' AND mostrar = 0 ", $conexion);
  20. $letra ='0-9';
  21. }
  22. }
  23.  
  24. if (!$num_pag)
  25. {
  26. $comienzo = 0;
  27. $num_pag = 1;
  28. }
  29. else
  30. {
  31. $comienzo = ($num_pag - 1) * $cant_reg;
  32. }
  33.  
  34.  
  35. $result_letraw = mysql_query("SELECT COUNT(*) FROM anime where nombre like '$letra%' AND mostrar = 0 ", $conexion);
  36. $total_registros = mysql_num_rows($result_letraw);
  37.  
  38.  
  39. if($totalletra < 3){
  40. if($letra != '09')
  41. {
  42. $result_letra = mysql_query("SELECT * FROM anime where nombre like '$letra%' AND mostrar = 0 ORDER BY nombre LIMIT $comienzo, $cant_reg", $conexion);
  43. }else {
  44. $result_letra = mysql_query("SELECT * FROM anime where nombre REGEXP '^[0-9+\.]' AND mostrar = 0 ORDER BY nombre LIMIT $comienzo, $cant_reg", $conexion);
  45. $letra='0-9';
  46. }
  47. }
  48.  
  49. $total_paginas = ceil($total_registros / $cant_reg);
  50.  
  51.  
  52.  
  53. ?>

Ahora el problema el cual no me lista le numero de paginas es por esto:

Código PHP:
$result_letraw mysql_query("SELECT COUNT(*) FROM anime where nombre like '$letra%' AND mostrar = 0 "$conexion);
$total_registros mysql_num_rows($result_letraw); 
corri la consulta en el query y si me ejecuto bien sin problemas pero en el archivo me da ese error.

ya no se que hacer, por eso recurri a los expertos, espero me puedan ayudar por favor.

Saludos Cordiales a todos
  #2 (permalink)  
Antiguo 31/01/2014, 15:12
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Error en Paginador PHP Error Resource id #6

Normalmente, para obtener el total de registros haces algo así:

Código PHP:
Ver original
  1. $res_registros = mysql_query("SELECT COUNT(*) FROM tabla WHERE aqui_tu_condicion") or die('Error en la consulta: ' . mysql_error());
  2.  
  3. $total_registros = mysql_result($query_cuenta, 0, 0);

No es necesario leer toda la tabla, basta con usar COUNT() y luego leer con mysql_result()

Tu problema es que estás haciendo "echo" de una variable que contiene el resultado de una consulta, ejemplo:

Código PHP:
Ver original
  1. echo $res_registros; // MySQL Resource #3 (puede ser otro número)
  2. echo $total_registros; // Aquí sí obtienes el total de registros
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 31/01/2014, 18:26
 
Fecha de Ingreso: septiembre-2008
Mensajes: 38
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Error en Paginador PHP Error Resource id #6

Cita:
Iniciado por Triby Ver Mensaje
Normalmente, para obtener el total de registros haces algo así:

Código PHP:
Ver original
  1. $res_registros = mysql_query("SELECT COUNT(*) FROM tabla WHERE aqui_tu_condicion") or die('Error en la consulta: ' . mysql_error());
  2.  
  3. $total_registros = mysql_result($query_cuenta, 0, 0);

No es necesario leer toda la tabla, basta con usar COUNT() y luego leer con mysql_result()

Tu problema es que estás haciendo "echo" de una variable que contiene el resultado de una consulta, ejemplo:

Código PHP:
Ver original
  1. echo $res_registros; // MySQL Resource #3 (puede ser otro número)
  2. echo $total_registros; // Aquí sí obtienes el total de registros
Gracias por tu respuesta, con lo que me orientaste solucione mi problema, gracias por tu gran ayuda.

Saludos.

Etiquetas: mysql, paginador, registro, resource, select
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 08:52.