Foros del Web » Programando para Internet » PHP »

CodeIgniter Algunas dudas sobre paginación de resultados de una búsqueda

Estas en el tema de Algunas dudas sobre paginación de resultados de una búsqueda en el foro de PHP en Foros del Web. [ ] Hola, llevo un buen tiempo tratando de resolver esto, pero no acabo de dar con el asunto, lo que quiero es poder paginar ...
  #1 (permalink)  
Antiguo 12/11/2010, 09:53
Avatar de rogertm
Mod->Cuba
 
Fecha de Ingreso: julio-2005
Ubicación: /home/Cuba/Habana/rogertm/
Mensajes: 2.922
Antigüedad: 18 años, 9 meses
Puntos: 638
Algunas dudas sobre paginación de resultados de una búsqueda

[]
Hola, llevo un buen tiempo tratando de resolver esto, pero no acabo de dar con el asunto, lo que quiero es poder paginar los resultados de una búsqueda que hago en la base de datos, y después de varios intentos, al fin no me da errores lo que tengo, pero tampoco me hace el paginado. Les muestro mi código.

Modelo users_query.php
Código PHP:
Ver original
  1. <?php
  2. class Users_query extends Model{
  3.  
  4.     function Users_query()
  5.     {
  6.         parent::Model();
  7.     }
  8.  
  9.     // Buscar Usuarios
  10.     function users_query_search()
  11.     {
  12.         $limit = 0;
  13.         // numero del paginado -> /cpanel/users/index/10
  14.         if($this->uri->segment(4))
  15.         {
  16.             // valor inicial $limit = 10
  17.             $limit = $this->uri->segment(4);
  18.         }
  19.         $this->db->limit($limit);
  20.  
  21.         $search_user = $this->input->post('buscar');
  22.         $this->db->where("MATCH(usuario_nombre, usuario_email, usuario_login)
  23.                        AGAINST('$search_user' IN BOOLEAN MODE)", NULL, FALSE);
  24.         return $this->db->get('gd_usuarios', 10, $limit);
  25.         // $results = $this->db->count_all_results();
  26.     }
  27.     function users_query_search_count()
  28.     {
  29.         $num = 5;
  30.         return $num;
  31.         // return users_query_search($results);
  32.     }
  33. }
  34. ?>

El controlador users_search.php
Código PHP:
Ver original
  1. <?php
  2. class Users_search extends Controller{
  3.  
  4.     function __construct()
  5.     {
  6.         parent::Controller();
  7.     }
  8.  
  9.     function index()
  10.     {
  11.         // Cargamos el modelo que sirve la vista
  12.         // que muestra los usuarios
  13.         $this->load->model('/cpanel/Users_query');
  14.  
  15.         $config_pagination['base_url']        = base_url().'/cpanel/users_search/index';
  16.         $config_pagination['total_rows']    = $this->Users_query->users_query_search_count();
  17.         $config_pagination['num_links']        = '3';
  18.         $config_pagination['uri_segment']    = '4';
  19.         $this->pagination->initialize($config_pagination);
  20.  
  21.         $users_to_show['users_query_search'] = $this->Users_query->users_query_search($config_pagination);
  22.         $this->load->view('/cpanel/users_search', $users_to_show);
  23.     }
  24. }
  25. ?>

Y la vista users_search.php
Código PHP:
Ver original
  1. <?php
  2. if($users_query_search->num_rows() > 0)
  3. {
  4. ?>
  5. <div class="msg">Su b&uacute;squeda para <strong>"<?php echo $this->input->post('buscar'); ?>"</strong> arroj&oacute; <strong><?php echo $users_query_search->num_rows(); ?></strong> resultados</div>
  6. <?php
  7. $this->table->set_heading(array(
  8.                         'ID',
  9.                         'Nombre de Usuario',
  10.                         'Correo Electr&oacute;nico',
  11.                         'Nombre de Login',
  12.                         'Nivel de Acceso',
  13.                         'Editar',
  14.                         'Eliminar'));
  15.  
  16. foreach($users_query_search->result_array() as $users_row):
  17.     $this->table->add_row(array(
  18.                         $users_row['usuario_ID'],
  19.                         $users_row['usuario_nombre'],
  20.                         mailto($users_row['usuario_email'], $users_row['usuario_email']),
  21.                         $users_row['usuario_login'],
  22.                         $users_row['usuario_roll'],
  23.                         anchor('/cpanel/users_edit/index/'.$users_row['usuario_ID'], 'Editar'),
  24.                         anchor('/cpanel/users_delete/index/'.$users_row['usuario_ID'], 'Eliminar')));
  25. endforeach;
  26.  
  27. echo $this->table->generate();
  28. echo $this->pagination->create_links();
  29. }
  30. else
  31. { ?>
  32. <div class="msg">Su b&uacute;squeda para <strong>"<?php echo $this->input->post('buscar'); ?>"</strong> arroj&oacute; <strong><?php echo $users_query_search->num_rows(); ?></strong> resultados</div>
  33. <?php
  34. }
  35. ?>

Entonces, tengo varias dudas:
1. ¿Por qué no me hace el paginado?
2. En el modelo, tengo dos funciones, una para la consulta y la otra para el número de resultados, esto lo intenté hacer desde una sola función, pero siempre me daba error, esto es asunto de codear puro php, pero me declaro coder sato
2.1 ¿Cómo hago para llamar una variable que debería tener en la función users_query_search() desde users_query_search_count(), fíjense en el código las lineas comentariadas, nuevamente me declaro coder sato?
3. En el controlador, en el valor de la variable $config_pagination['total_rows'] le he puesto = '5', ahí, al duro y no hace lo que se espera.

Espero puedan ayudarme a ir resolviendo esto... Gracias mil de antemano

Saludos
[/]
__________________
Friki y Blogger por Cuenta Propia:213
Twenty'em: Theming is Prose

Etiquetas: codeigniter, function, paginacion
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:18.