Ver Mensaje Individual
  #1 (permalink)  
Antiguo 15/02/2011, 18:54
Avatar de Miguelithox
Miguelithox
 
Fecha de Ingreso: diciembre-2008
Ubicación: Viña del Mar
Mensajes: 287
Antigüedad: 16 años, 1 mes
Puntos: 7
Pregunta Problema al mostrar función de Paginación

He decidido hacer una función PHP que sirva para paginación, con Url modificable. (No como la clase de JPinedo que es más complicado, y la Url no la puedes modificar a tu gusto)

Pero tengo un problema al mostrar los datos.

Aquí les dejo el código.

$consulta: Es la consulta a la base de datos.
$hasta: Es la cantidad de registros a mostrar por pagina.
$nombre: Es el nombre que se le dará en el array() en el while().
$while: Es el array, en el cual seleccionas las tablas que necesitarás luego en el foreach().
$foreach: Es donde muestras los resultados.
$url: Es la url en donde se encuentra la paginación, tu le indicas, para luego la paginacion agregar /pag/X/
Función Paginacion();
Código PHP:
Ver original
  1. function Paginacion($consulta, $hasta, $nombre, $while, $foreach, $url) {
  2.     global $config;
  3.  
  4. $hasta  =   $hasta;
  5. $pagina =   (int) $_REQUEST['pagina'];
  6. if($pagina < 1 || empty($pagina)) {
  7. $pagina = 1;
  8. }
  9. if(!empty($pagina)) {
  10. $desde  =   ($pagina - 1) * $hasta;
  11. $act    =   $pagina;
  12. } else {
  13. $desde  =   0;
  14. $act    =   1;
  15. }
  16.  
  17. $sql        =   $consulta;
  18. $request    =   Consulta($sql . " LIMIT {$desde}, {$hasta}", __FILE__, __LINE__);
  19. $rows       =   mysql_num_rows(Consulta($sql, __FILE__, __LINE__));
  20. $config[$nombre]    =   array();
  21. while($row  =   mysql_fetch_assoc($request)) {
  22. $config[$nombre][]  =   $while;
  23. }
  24.  
  25.  
  26. if($rows == false) {
  27. echo 'Nada';
  28. } else {
  29. foreach($config[$nombre] as $mostrar) {
  30. echo $foreach;
  31. }
  32.  
  33. $ant        =   $act - 1;
  34. $sig        =   $act + 1;
  35. $ult        =   $rows / $hasta;
  36. $res        =   $rows % $hasta;
  37. if($res > 0) {
  38. $ult        =   floor($ult) + 1;
  39. }
  40. if($ult > 1) {
  41. echo '<div class="OuterBox">
  42. <div class="InnerBox">
  43. <div class="wp-pagenavi">
  44. <span class="pages">P&aacute;gina ' . $act . ' de ' . $ult . '</span>';
  45. if($ult == $act && $act <> 1) {
  46. echo '<a href="' . $url . '/pag/1/" class="page" title="&laquo; Primera">&laquo; Primera</a>';
  47. }
  48. if($act > 1 && $ant <> 1) {
  49. echo '<a href="' . $url . '/pag/' . $ant . '/" class="page" title="' . $ant . '">' . $ant . '</a>';
  50. }
  51. echo '<span class="current">' . $act . '</span>';
  52. if($act < $ult && $sig <> $ult) {
  53. echo '<a href="' . $url . '/pag/' . $sig . '/" class="page" title="' . $sig . '">' . $sig . '</a>';
  54. }
  55.  
  56. if($ult - $act >= 4) {
  57. for($i = $sig + 1; $i <= $ult - 1; $i++) {
  58. echo '<a href="' . $url . '/pag/' . $i . '/" class="page" title="' . $i . '">' . $i . '</a>';
  59. }
  60. }
  61.  
  62. if($ult <> $act) {
  63. echo '<a href="' . $url . '/pag/' . $ult . '/" class="last" title="&Uacute;ltima &raquo;">&Uacute;ltima &raquo;</a>';
  64. }
  65. echo '</div>
  66. </div>
  67. </div>';
  68. }
  69. }
  70. }



y aquí lo llamo:
Código PHP:
Ver original
  1. $hasta      =   10;
  2. $consulta   =   "SELECT * FROM (articulos AS a, articulos_comentarios AS c) WHERE a.ID_ARTICULO = c.ID_ARTICULO";
  3. $nombre     =   'comentarios';
  4. $while      =   array(
  5.     'id'    =>  $row['ID_COMENTARIO'],
  6.     'fec'   =>  Fecha($row['fecha']),
  7.     'com'   =>  BBcode($row['comentario'])
  8. );
  9.  
  10. $foreach    =   '<div>En el comentario n&uacute;mero ' . $mostrar['id'] . ', con fecha ' . $mostrar['fec'] . ' se dijo: <br />' . $mostrar['com'] . '</div>';
  11.  
  12.  
  13. $url        =   $config['url'] . '/probando';
  14. Paginacion($consulta, $hasta, $nombre, $while, $foreach, $url);

El problema que tengo, es que los cuenta perfectamente los resultados, con las páginas y todo, pero no me muestra ni la ID, ni la fecha, ni el comentario, ni ningún dato.

¿Qué es lo que me falta para que funcione?

Saludos.