Autor Tema: Paginacion usando PDO y pear  (Leído 2700 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado moyo18

  • The Communiter-
  • *
  • Mensajes: 1719
Paginacion usando PDO y pear
« : abril 03, 2011, 11:01:40 am »
Me toco investigar un poco como hacer una paginacion con PDO y llegue a utilizar pear. Como era la primera vez q hago un proyecto en el trabajo usando pdo no encontraba algun script q me ayudara a hacer un pagin sencillo y sin complicarme. despues d un rato googleando llegue a utilizar Pear. Ya habia estuchado d pear y tiene muchas cosas buenas. la tool q use de pear pager. Aqui les dejo un script a mas d alguno les puede interesar.

Para empezar necesitan bajar http://pear.php.net/package/Pager/docsr Luego se procede a subirlo al servidor, recomiendo subir toda la carpeta Pager y dejarla intacta, a menos que sepan lo que iran a hacer.

Hacemos nuestra primera consulta

Código: [Seleccionar]
$dbh = new PDO('mysql:host='.$hostName.';dbname='.$dbName.'', $userNameDB, $passwordDB);
     
      $search = $dbh -> prepare("SELECT * FROM tbl_files WHERE fileName like ? AND status<>4");
      $search -> bindParam(1, $searchValue);
      $search -> execute();     
      $numberFiles = $search->rowCount();

Luego obtenemos el numero de archivos que necesitamos mostrar (la consulta la estoy haciendo para un search form). Cuando ya tenemos el numero $numberFiles , pasamos a usar Pager.

Código: [Seleccionar]
// begin pager
      $params = array(
        'totalItems' => $numberFiles,
        'perPage' => 5,
        'delta' => 2,
        'mode' => 'Sliding'
      );
     
      $pager = Pager::factory($params);
   
      list($from, $to) = $pager->getOffsetByPageId();
      $from = $from - 1;
      $perPage = $params['perPage'];
     
      $stmt = $dbh->prepare('SELECT * FROM tbl_files WHERE fileName like ? AND status<>4 LIMIT :from, :perPage');
   
      $stmt->bindValue(':from', $from, PDO::PARAM_INT);
      $stmt->bindValue(':perPage', $perPage, PDO::PARAM_INT);
      $stmt->execute();
      $result = $stmt->fetchAll();
      $displayAllResults = $result;
     
      $stmt = null;   
      $select = null;

En este pedazo de codigo declaramos todos los parametros que necesitamos para pager, el numero de items, la cantidad que queremos mostrar son las mas importantes, ademas de sliding.

Se inicia pager con el siguiente codigo $pager = Pager::factory($params); y luego se pasa a crear los numeros para hacer las consultas en la base de datos. Cuando ya se tiene lo que necesitamos mostrar en mi caso lo guarde en la variable $displayAllResults, cerramos las conecciones y se procede a mostrar lo que necesitamos.

Código: [Seleccionar]
for($i=0; $i < count($displayAllResults); $i++){
  echo $displayAllResults[$i];   
}

Lo unico que falta por hacer es poner los links de los numeros para terminar la paginacion

 
Código: [Seleccionar]
  //display pagination
  echo '<br />'.$pager->links;
Y eso es todo, espero les sirva de ayuda este tutorial muy basico.

Aqui lo tengo posteado tambien
Código: [Seleccionar]
http://xtremenews.info/1336/paginacion-sencilla-en-php-usando-pager-y-pdo.html