Foros del Web » Programando para Internet » PHP »

PHP OO clase pagination_pdo, duda query

Estas en el tema de clase pagination_pdo, duda query en el foro de PHP en Foros del Web. Hola amigos, aestoy tratando de implementar una paginacion php-pdo en mi sistema, encontre una clase (PDO_PAGINATION) es lo que busco, pero tengo problemas al implementarlo... ...
  #1 (permalink)  
Antiguo 12/08/2014, 19:47
 
Fecha de Ingreso: noviembre-2010
Mensajes: 131
Antigüedad: 13 años, 4 meses
Puntos: 1
clase pagination_pdo, duda query

Hola amigos, aestoy tratando de implementar una paginacion php-pdo en mi sistema, encontre una clase (PDO_PAGINATION) es lo que busco, pero tengo problemas al implementarlo...

Yo trabajo con pdo, en un archivo aparte tengo todas las funciones (insert, update, carga de registros, etc) y la conexion igual aparte....

Desde mis paginas php voy "llamando" a dichas funciones de la siguiente forma:
Código PHP:
//Muestro todos los Datos en la pagina
if(isset($_POST['buscar'])){

    if(empty(
$_POST['buscar'])){
        echo 
"No se Ingreso ningun Parametro de Busqueda";
    }else{
    
//Invoco a la funcion buscar
   
$avisos=$aviso->buscarAviso();
   
   
//Muestro el lotal de avisos que coinciden con la busqueda
   
$totalavisos=count($avisos);
   
    } 
el ejemplo de implementacion de esta clase es asi:
Código PHP:
/* Config Connection */
$root 'root';
$password 'password';
$host 'localhost';
$dbname 'dbname';

$connection = new PDO("mysql:host=$host;dbname=$dbname;"$root$password);
$pagination = new PDO_Pagination($connection);

$search null;
if(isset(
$_REQUEST["search"]) && $_REQUEST["search"] != "")
{
$search htmlspecialchars($_REQUEST["search"]);
$pagination->param "&search=$search";
$pagination->rowCount("SELECT * FROM products WHERE category LIKE '%$search%' OR description LIKE '%$search%' OR name LIKE '%$search%'");
$pagination->config(35);
$sql "SELECT * FROM products WHERE category LIKE '%$search%' OR description LIKE '%$search%' OR name LIKE '%$search%' ORDER BY id_product ASC LIMIT $pagination->start_row, $pagination->max_rows";
$query $connection->prepare($sql);
$query->execute();
$model = array();
while(
$rows $query->fetch())
{
    
$model[] = $rows;
}
}
else
{
$pagination->rowCount("SELECT * FROM products");
$pagination->config(35);
$sql "SELECT * FROM products ORDER BY id_product ASC LIMIT $pagination->start_row, $pagination->max_rows";
$query $connection->prepare($sql);
$query->execute();
$model = array();
while(
$rows $query->fetch())
{
    
$model[] = $rows;
}

pero me da error, debido a que de la forma que yo trabajo, ya tengo las conexiones con la base de datos, ya obtengo el total de registros que tengo...

De que forma puedo pasar el metodo de la clase pdo_pagination a mi archivo de funcion por ejemplo, ya que esas consultas yo las tengo en mis funciones, lo que no se es como pasar las variables de la paginacion...

saludos cordiales, gracias a todos
  #2 (permalink)  
Antiguo 13/08/2014, 08:05
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 9 meses
Puntos: 379
Respuesta: clase pagination_pdo, duda query

Tienes dos opciones o usas PDO_Pagination o modificas tu código para usar cosas de esa clase, que creo es la opción que intentas, pero para que alguien se tome tiempo para ayudarte facilita las cosas publicando el código que quieres modificar y como lo estas intentando.
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #3 (permalink)  
Antiguo 13/08/2014, 15:48
 
Fecha de Ingreso: noviembre-2010
Mensajes: 131
Antigüedad: 13 años, 4 meses
Puntos: 1
Respuesta: clase pagination_pdo, duda query

Cita:
Iniciado por hhs Ver Mensaje
Tienes dos opciones o usas PDO_Pagination o modificas tu código para usar cosas de esa clase, que creo es la opción que intentas, pero para que alguien se tome tiempo para ayudarte facilita las cosas publicando el código que quieres modificar y como lo estas intentando.
hola @ gracias por tu tiempo y tu respuesta, asi es como estoy trbajando:

Archivo Funciones (donde tegno una clase y tdas las funciones que uso:)
Código PHP:
require_once 'conexion.php';

//heredamos   desde la clase Conexion
class Avisos extends Conexion{
    
        private 
$con;
        private 
$art;
    private 
$total;
        
        function 
__construct() {
            
$this->con=  parent::conectar();
        }
        
        
        
//--------------------------------------------------------------------------
         //Listado de Avisos 
        
function listadoAvisos(){
            
//Variable para la Consulta SQL (ultimo aviso queda en primer lugar)
            
            
try{
                
$query="select * from  avisos ORDER BY cod_aviso desc "//limit $inicio, 10
            
            //Preparamos la Consulta para su ejecucion: 
            
            
$stmt =$this->con->prepare($query);
            
            
//Ejecutamos la Consulta
            
$stmt->execute();
            
            
//Obtengo el total de filas afectadas por la accion que se realiza
           
$res=$stmt->rowCount();
           
            
           
/*if ($res === "0") {
                print "Nenhum resultado encontrado na sua consulta!";
                } */

            
while ($row=$stmt->fetch()){
               
$this->datos[]=$row
            }
                     
            
//Retornamos los Valores
            
return $this->datos;
            
            }catch(
PDOException $e){
                echo 
$e->getMessage();
            }
//catch

            
}//Función listadoAvisos 
index.php (Donde tengo que incluir la paginacion)
Código PHP:
equire_once 'Inc/funciones.php';
//require_once 'js/vendor/PDO_Pagination.php';


//instanciamos el objeto
$aviso= new Avisos();

if (isset ($_GET["pos"])){
    $inicio = $_GET["pos"];
}else{
    $inicio = 0;
}
        

//Muestro todos los Datos en la pagina
if(isset($_POST['buscar'])){

    if(empty($_POST['buscar'])){
        echo "No se Ingreso ningun Parametro de Busqueda";
    }else{
    //Invoco a la funcion buscar
   $avisos=$aviso->buscarAviso();
   
   //Muestro el lotal de avisos que coinciden con la busqueda
   $totalavisos=count($avisos);
   
    }
} else{
    //cargo por defecto los avisos
    $avisos=$aviso->listadoAvisos($inicio);
    $tArt = $aviso->Totalavisos();
    $tPag = $tArt/10;
    
    
    //obtengo la página actual
    if (isset($_GET["pos"]) and $_GET["pos"]>0){
        
            $act = $_GET["pos"]/10+1;
        
        }else{
        
            $act = 1;}
    
    
    //Lleno el Combobox desde la Base de Datos
    $av=$aviso->cargarCombo();
    
    //Cuento el total de avisos que hay en la base de Datos
    $totalavisos=count($avisos);
    }

?>


</head>

<body>
<!--Contenedor Principal-->
<div class="container">

    <div class="row">
        <h3 class="text-center">Avisos Publicados</h3>
        <p class="text-right alert-info">Tenemos <strong><?php echo $totalavisos?> </strong> avisos publicados
         en nuestra Base de Datos</p>
    </div>
    
    <!--Busqueda y Filtros-->
    <div class="row">
        <section class="col-lg-12 text-right buscadorAvisos">
            <form method="POST" id="search" class="form-inline" action="">
                <div class="form-group">
                <label for="buscador">Titulo del Aviso:</label>
                <input type="text" name="buscador" class="form-control"/>
                <input type="submit" class="btn btn-default" name="buscar" value="Buscar"/>
                </div>
                <!--<div class="form-group">
                <label for="categorias">Mostrar Avisos de:</label>
                <select name="categorias" class="form-control" id="cat" >
                  
                   /*<?php foreach($av as $row) : ?> 
                    <option value="<?php echo $row['id_categoria']; ?>"><?php echo $row['categoria']; ?></option> 
                <?php endforeach ?> */

                </select>
                <input type="submit" class="btn btn-default" name="cat_aviso" value="Filtrar"/>
                </div>-->
            </form>
        </section>
        
       <!--<section class="col-lg-8">
        Filtros de Busqueda
        </section>-->
        
    </div><!--Fin Busqueda y Filtros-->
    
    <!--Presentación de Avisos-->
    <div class="row">
        
        <!--Avisos-->
        <?php foreach($avisos as $row)
            {
                echo 
"<article class='col-lg-12 listadoAvisos'>";
        
        echo 
"<div class='col-lg-5 imagenListaAviso'>";
                    if(
$row['img1']==NULL){
            echo 
"<img src='img/noimage.jpg'  class='img-rounded' />";
            }else{
                                echo 
"<img src=".$row['img1']." height='200px' width='350px' />";}
        echo 
"</div>";
        
                
//contenido
               
echo "<div class='col-lg-6 text-left contenidoListaAviso'>";
                   
        
//Titulo del Aviso
        
echo "<h3 class='text-center'>".$row['titulo_aviso']."</h3>";
        
//Parrafo parte Aviso
        
echo "<p class='text-justify'>".$row['aviso_completo']."</p>";
        
//Fecha de Publicación
        
echo "<p class='text-justify'>".$row['fecha_publicacion']."</p>";
        
//Categoria
        
echo "<p class='text-justify'>".$row['categoria_aviso']."</p>";
        
//Boton Leer Aviso Completo
        
echo "<a class='text-center btn btn-info' href='detalleaviso.php?cod_aviso=".$row['cod_aviso']."'>Ver Aviso</a>";
                   
                echo 
"</div>";
                                                 
                echo 
"</article>";
        
                }
?>
        
                </div>
                
                
        </div>
                
                <!--aca muestro el listado de avisos-->
    
    </div><!--Fin Presentación de Avisos-->
    
    <!--Paginacion de Resultados-->
    <div class="text-center paginas">
        paginacion
        <a href="?pos=<?php echo $inicio-$cantAvisos?>">Anterior</a>
        <a href="?pos=<?php echo $inicio+$cantAvisos?>">Siguiente</a>
lo que habia intentado hacer, teniendo en cuenta qeu ya cuneto con conexion a la bd, y tengo una funcion que me devuelve todos los registros, y los puedo mostrar sin problemas:

Código PHP:


$pagination
->rowCount("SELECT * FROM avisos");
$pagination->config(35);
$sql "SELECT * FROM avisos ORDER BY cod_aviso DESC LIMIT $pagination->start_row, $pagination->max_rows";
$query $connection->prepare($sql);
$query->execute();
$model = array();

while(
$row $query->fetch())
{
    
$av[] = $row;
}
}


 
//Listado de Avisos 
        
function listadoAvisos(){
            
//Variable para la Consulta SQL (ultimo aviso queda en primer lugar)
            
            
try{
                
$query="select * from  avisos ORDER BY cod_aviso desc "//limit $inicio, 10
            
            //Preparamos la Consulta para su ejecucion: 
            
            
$stmt =$this->con->prepare($query);
            
            
//Ejecutamos la Consulta
            
$stmt->execute();
            
            
//Obtengo el total de filas afectadas por la accion que se realiza
           
$res=$stmt->rowCount();
           
            
           
/*if ($res === "0") {
                print "Nenhum resultado encontrado na sua consulta!";
                } */

            
while ($row=$stmt->fetch()){
               
$this->datos[]=$row
            }
                     
            
//Retornamos los Valores
            
return $this->datos;
            
            }catch(
PDOException $e){
                echo 
$e->getMessage();
            }
//catch 
  #4 (permalink)  
Antiguo 13/08/2014, 16:27
 
Fecha de Ingreso: noviembre-2010
Mensajes: 131
Antigüedad: 13 años, 4 meses
Puntos: 1
Respuesta: clase pagination_pdo, duda query

no lo dejemuy claro, yo probe asi:
Código PHP:
//conexion propia de la clase
$pagination->rowCount("SELECT * FROM avisos");
$pagination->config(35);
$sql "SELECT * FROM avisos ORDER BY cod_aviso DESC LIMIT $pagination->start_row, $pagination->max_rows";
$query $connection->prepare($sql);
$query->execute();
$model = array();

while(
$row $query->fetch())
{
    
$model[] = $row;

y de echo me funciona la paginacion, pero tengo que inciar 2 conexiones, y no me funciona otra parte del codigo de lapagina, por lo cual lo que intento hacer es integrar esto en mi archivo de funciones, en lafuncion ListadoAvisos

Etiquetas: clase, html, query, registro, select, sql, variable
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 11:50.