Dudas en Class Paginacion PDO Jonathan (Blonder413)

40 views
Skip to first unread message

Nicolas Ezequiel Almonacid

unread,
Aug 21, 2014, 11:26:02 PM8/21/14
to programa...@googlegroups.com
hola amigos, estoy siguiendo la paginacion del maestro jonathan, y me encuentro con algunos problemas....

tengo este codigo:
require_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);
   
}

?>

<!DOCTYPE html>
<!--[if lt IE 7]>      <html class="no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]-->
<!--[if IE 7]>         <html class="no-js lt-ie9 lt-ie8"> <![endif]-->
<!--[if IE 8]>         <html class="no-js lt-ie9"> <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js"> <!--<![endif]-->
<head>
   
<meta charset="utf-8">
   
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
   
<title>Plataforma de Avisos Gratuitos.- ChiloeAvisos</title>
    <!--<meta name="viewport" content="width=device-width, initial-scale=1">-->
        <link rel="stylesheet" href="css/
normalize.min.css">
        <link rel="
stylesheet" href="css/bootstrap.css">
        <link rel="
stylesheet" href="css/main.css">
        <script src="
js/vendor/modernizr-2.6.2.min.js"></script>
           
</head>

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

    <div class="
row">
            <h3 class="
text-center">Avisos Publicados</h3>
            <a href="
index.php" class="btn btn-danger text-left">Publica tu Aviso GRATIS...</a>
            <p class="
text-right alert-info">Tenemos <strong><?php echo $totalavisos; ?> </strong> avisos publicados
             en nuestra Base de Datos</p>
        </div>

   
   
    <div class="
row">
       
        <!--Avisos Pagados-->
        <div class="
col-lg-12 avisosPagados">
     
        avisos premium
       
        </div><!--Avisos Pagados-->
       
       
        <!--Seccion Avisos Gratis-->
        <div class="
col-lg-8 avisosGratis">
        <?php
            //obtengo los articulos
            foreach ($avisos as $row) {
                echo $row["
titulo_aviso"]."<br>";
            }
            echo "<br>";
           
            $a = 0;
            $ultima = 0;
            for ($i=1; $i < $tPag; $i++) {
                if ($i==$act) {
                    echo $i;
                }else{
        ?>
       
            <a href="
?pos=<?php echo $a; ?>"><?php echo $i; ?></a>
       
       
        <?php
                }
                $a+=10;
                $ultima++;
            }
            $final = $ultima * 10;    //ultimo registro mostrado
            $resto = $tPag - $final;    //lo que falta por mostrar
           
            if ($final<$tArt) {
                $ultima++;
                if($ultima == $act){
                    echo $ultima;
                }else{
        ?>
                <a href="
?pos=<?php echo $a; ?>"><?php echo $ultima; ?></a>
        <?php
                }
            }
           
        ?>
           
           
        </div><!--Fin Seccion Avisos Gratis-->

       
       
       
       
        <aside class="
col-lg-4">

            <div class="
panel panel-info">
                        <div class="
panel-heading">Buscar Avisos</div>
                            <div class="
panel-body">
                                <section class="
col-lg-12 text-right buscadorAvisos">
                                    <form method="
POST" id="search"  action="">
                                        <div class="
form-group text-center">
                                            <label for="
buscador">Titulo del Aviso:</label><br>
                                            <input type="
text" name="buscador" class="form-control" placeholder="Ingrese Codigo de Aviso, Titulo de aviso o Email"/><br>
                                        <input type="
submit" class="btn btn-default" name="buscar" value="Buscar" />
                                        </div>  
                                    </form>
                                </section>
                            </div>
                    </div>        
           
            <div class="
panel panel-info">
                        <div class="
panel-heading">Publicidad</div>
                        <div class="
panel-body">
                            <!--Compartir Facebook-->
                            <p><strong>Imagen de Patrocinador u otros</strong></p>
                           
                           
                        </div>
                    </div>
           
            <div class="
panel panel-info">
                        <div class="
panel-heading">Redes Sociales</div>
                        <div class="
panel-body">
                            <!--Compartir Facebook-->
                            <p><strong>Facebook: </strong></p>
                           
                            <!--Compartir Twitter-->
                            <p><strong>Twitter: </strong></p>
                           
                            <!--Enviar Email-->
                            <p><strong>Email: </strong></p>
                        </div>
                    </div>
       
        </aside>
       
       
    </div>
   
    <!--Presentación de Avisos-->
   
               
                <!--aca muestro el listado de avisos-->
   
    </div><!--Fin contenedor-->
   
    <!--Paginacion de Resultados-->
    <div class="
text-center paginas">
        paginacion
        <a href="
?pos=<?php echo $a; ?>"><?php echo $i; ?></a>
        <a href="
?pos=<?php echo $a; ?>"><?php echo $ultima; ?></a>
       
       
    </div> <!--Fin Paginacion de Resultados-->
pero me muestra asi:

mis funciones (que las tengo en un archivo php aprte) las tengo asi:

Funcion Listar avisos ($inicio)
function listadoAvisos($inicio){
           
//Variable para la Consulta SQL (ultimo aviso queda en primer lugar)
           
           
try{
                $query
="select * from  avisos ORDER BY cod_aviso desc limit $inicio,10 "; //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 "No hay Avisos Publicados en la Plataforma!";
           
}
           
while ($row=$stmt->fetch()){
               $this
->datos[]=$row;
           
}
         
           
//Retornamos los Valores
           
return $this->datos;

           
}catch(PDOException $e){
                echo $e
->getMessage();
           
}//catch

           
}//Función listadoAvisos
y la funcion contar total
function Totalavisos(){
           
//
            $query
="select count (*) as total from avisos";
            $stmt
=$this->con->prepare($query);
            $stmt
->execute();
            $res
=$stmt->rowCount();
           
           
           
/*if ($res === "0") {
                print "Nenhum resultado encontrado na sua consulta!";
                } */


           
while ($row=$stmt->fetch()){
              $this
->total = $reg["total"];
           
}
                     
           
//Retornamos los Valores
           
return $this->total;
           
           
           
/*if ($reg = mysql_fetch_array($result)) {
                $this->total = $reg["total"];
            }
            return $this->total;*/

         
       
}


y asi esta actualmente con los codigos anteriores:


Jonathan Morales Salazar

unread,
Aug 22, 2014, 11:11:32 AM8/22/14
to programa...@googlegroups.com
no entiendo el problema, comparta el error primero a ver qué pude ser y luego miramos los métodos.




--
--
Publicar: programa...@googlegroups.com
Anular suscripción: programando-an...@googlegroups.com
Webs: http://www.blonder413.com/ - http://www.cesarcancino.com/ - http://www.oscar-gomez.net/ - http://www.keyphercom.com/blog/

---
Has recibido este mensaje porque estás suscrito al grupo "Programando Ando" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a programando-an...@googlegroups.com.
Para acceder a más opciones, visita https://groups.google.com/d/optout.



--


Jonathan Morales Salazar
Ingeniero de Sistemas
www.blonder413.com

Nicolas Ezequiel Almonacid

unread,
Aug 22, 2014, 2:50:42 PM8/22/14
to programa...@googlegroups.com
Gracias estimado, no me arroja ningun error, me lista los 10 titulos en mi caso de los avisos, pero no me muestra los enlaces del paginador, y si los agrego en un div aparte, ahi los muestra, pero me muestra solo un 0 y un 1....
 
Habia dejado una captrua de pantalla pero veo que no se muestra...
 
Saludos cordiales y gracias por su tiempo y ayuda
...

Jonathan Morales Salazar

unread,
Aug 22, 2014, 4:23:33 PM8/22/14
to programa...@googlegroups.com
revise el método para contar las noticias y el código donde se genera la cantidad de páginas, así con el ciclo en el que se muestran. ¿cuántas noticias tiene? ¿cuántas páginas debería mostrarle?


--
--
Publicar: programa...@googlegroups.com
Anular suscripción: programando-an...@googlegroups.com
Webs: http://www.blonder413.com/ - http://www.cesarcancino.com/ - http://www.oscar-gomez.net/ - http://www.keyphercom.com/blog/

---
Has recibido este mensaje porque estás suscrito al grupo "Programando Ando" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a programando-an...@googlegroups.com.
Para acceder a más opciones, visita https://groups.google.com/d/optout.

Nicolas Ezequiel Almonacid

unread,
Aug 22, 2014, 7:06:17 PM8/22/14
to programa...@googlegroups.com
el metodo para contar el total de noticias lo tengo asi:

function Totalavisos(){
           
//
            $query
="select count (*) as total from avisos";
            $stmt
=$this->con->prepare($query);
            $stmt
->execute();
            $res
=$stmt->rowCount();
           
           
           
/*if ($res === "0") {
                print "Nenhum resultado encontrado na sua consulta!";
                } */


           
while ($row=$stmt->fetch()){
              $this
->total = $reg["total"];
           
}
                     
           
//Retornamos los Valores
           
return $this->total;
           
           
           
/*if ($reg = mysql_fetch_array($result)) {
                $this->total = $reg["total"];
            }
            return $this->total;*/

         
       
}

y en el index.php (donde tengo que mostrar 10 avisos y l paginacion tengo este codigo):
deneria tener 10 titulos por pagina, y efectivamente me muestra solo los 10 primeros titulos, ya que en el metodo listadoAvisos($inicio) le especifico que me muestre como limit 10...
//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 "No hay Avisos Publicados en la Plataforma!";
           
}
           
while ($row=$stmt->fetch()){
               $this
->datos[]=$row;
           
}
         
           
//Retornamos los Valores
           
return $this->datos;

           
}catch(PDOException $e){
                echo $e
->getMessage();
           
}//catch

           
}//Función listadoAvisos
       
Gracias maestro
...

Jonathan Morales Salazar

unread,
Aug 23, 2014, 8:55:38 AM8/23/14
to programa...@googlegroups.com
hasta ahí lo veo bien, revise el código donde calcula la página actual y la cantidad de páginas


--
--
Publicar: programa...@googlegroups.com
Anular suscripción: programando-an...@googlegroups.com
Webs: http://www.blonder413.com/ - http://www.cesarcancino.com/ - http://www.oscar-gomez.net/ - http://www.keyphercom.com/blog/

---
Has recibido este mensaje porque estás suscrito al grupo "Programando Ando" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a programando-an...@googlegroups.com.
Para acceder a más opciones, visita https://groups.google.com/d/optout.

Nicolas Ezequiel Almonacid

unread,
Aug 24, 2014, 7:21:38 PM8/24/14
to programa...@googlegroups.com
resuelto con la ayuda del maestro jonathan....gracias a todos


El viernes, 22 de agosto de 2014 00:26:02 UTC-3, Nicolas Ezequiel Almonacid escribió:
...
Reply all
Reply to author
Forward
0 new messages