Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Atila Rampazo

[PHP OO] - Paginação

Recommended Posts

Caros Boa Tarde, Estou iniciando agora em PHP OO e estou precisando fazer uma paginação.

Gostaria de saber se alguém consegue me ajudar?

 

Vou postar aqui os códigos das classes.

 

Role.class.php

<?php
class Role{
  private $Grupo;
  private $Excluido;

  function Agenda(){
  }

  public function SetGrupo($Grupo){
     $this->Grupo = $Grupo;
  }
  public function SetExcluido($Excluido){
     $this->Excluido = $Excluido;
  }

  public function GetGrupo()
  {
     return $this->Grupo;
  }
  public function GetExcluido()
  {
     return $this->Excluido;
  }
}

 

RoelDAO.class.php

 

<?php
class RoleDAO{
  // irá receber uma conexão
  public $con = null;
  // contrutor
  public function RoleDAO(){
     $this->conn = new Conexao();
  }
  public function Insere($Role){
     try {
        $stmt = $this->conn->prepare("INSERT INTO tblRole (Grupo) VALUES(?)") or trigger_error(print_r($this->con->errorInfo()));
        $stmt->bindValue(1, $Role->GetGrupo());
        $stmt->execute();
        // fecho a conexao
        $this->conn = null;
     } catch (Exception $e) {
        echo "Erro:".$e->getMessage();
     }
  }
  public function Lista()
  {
     try {
        $stmt = $this->conn->query("SELECT tblRole.ID,tblRole.Grupo,tblRole.Excluido FROM tblRole WHERE tblRole.Excluido = 0");
        return $stmt;
     } catch (Exception $e) {
        echo "Erro:".$e->getMessage();
     }
  }
  public function DeleteRole($Codigo)
  {
        try {
        $stmt = $this->conn->prepare("UPDATE tblRole SET tblRole.Excluido=1 WHERE tblRole.ID = ?");
        $this->conn->beginTransaction();
        $stmt->bindValue(1, $Codigo);
        $stmt->execute();
        $this->conn->commit();
        $this->conn = null;
     } catch (Exception $e) {
        echo "Erro:".$e->getMessage();
     }
  }
}

Index.php

 

<?php 
  include_once 'classes/Conexao.class.php';
  include_once 'classes/Role/RoleDAO.class.php';
  include_once 'classes/Role/Role.class.php';
  $Role = new Role();
  // Setando os dados
  if($_POST["cad"] = "cadastrar")
  {
     $Role->SetGrupo($_POST["txtRole"]);
     $DAO = new RoleDAO();
     $DAO->Insere($Role);
  }
  if ($GET["acao"] = "excluir" )
  {
     echo $_GET["ID"];
     $DAO = new RoleDAO();
     $DAO->DeleteRole($_GET["ID"]);
  }
?>
<html>
  <head></head>
  <title>:: Cadastro Role PDO ::</title>
  <body>
  <form method="post" action="index.php">
     <label for="txtRole">Grupo:</label><br>
     <input type="text" name="txtRole" size="23"/>
     <input type="submit" value="Cadastra Grupo"/>
     <input type="hidden" value="cadastrar" name="cad"/>

  </form>

  <table border="0">
     <tr>
     <td>ID</td>
     <td>Grupo</td>
     <td>Excluido</td>
     </tr>

     <?php 
      $DAO = new RoleDAO();
      $result = $DAO->Lista();
      while ($linha = $result->fetch(PDO::FETCH_OBJ))
      {
         echo'<tr>';
         echo '<td>'.$linha->ID.'</td>';
         echo '<td>'.$linha->Grupo.'</td>';
         echo '<td>'.$linha->Excluido.'</td>';
         if($linha->Excluido == 0)
         {
            echo '<td> Ativo </td>';
         }else
         {
            echo '<td> Inativo </td>';
         }
         echo '<td><a href="?acao=excluir&ID='.$linha->ID.'">Excluir</a></td>';
         echo'</tr>';       
      }
     ?>

  </table>
  </body>
</html>

 

 

E na index, gostaria de saber algum outro meio de fazer o excluir, sem ter que passar as informações via url deixar tipo post.

Obrigado e aguardo um retorno!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então, você pode fazer um loop no banco de dados para pegar quantos registros tem.

De posse do total você faz um loop para gerar a paginação.

 

Exemplo:


$total_registros = mysql_num_rows($sqlQuery); 
$total_registros_por_pagina = 10;
$total_paginas = $total_registros / $total_registros_por_pagina;

$menu_paginacao =  '';

for($i=0;$i<$total_paginas;$i++){

 $menu_paginacao .= '

   <form action="http://www.site.com/pagina=" method="post">
     <input type="hiden" name="valor_excluir" value="'$variavel_com_id_excluir'">
     <input type="submit" name="excluir" value="Excluir">
   </form>';

'
}

 

Você também pode tratar a paginação como um objeto e chamá-lo no fim da página que tem o html.

Enfim, só para dar uma idéia...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cria a classe paginação, exemplo:

  class paginacao extends suaconexao{

   public function listar(){
     //"fazer uma paginação com primeiro,ultimo,123456789"-> tudo acontece aqui dentro!
   }

}

 

Depois lá no html:

$paginacao = new paginacao();

$paginacao -> listar();

 

Você desenvolve seu próprio método dentro da classe e depois chama na parte do html que quiser.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.