sexta-feira, 23 de março de 2018

TPW - Aula 36-37

1º Adicionar o campo estado às tabelas users e pessoas.

v1_users atualizada

SELECT users.id AS idUser, idPessoa, username, privilegios.id AS idPrivilegio, nome, apelido, privilegio, users.estado AS estadoUser, pessoas.estado AS estadoPessoa
FROM users, pessoas, privilegios
WHERE pessoas.id = users.idPessoa
AND users.idPrivilegio = privilegios.id

usersListar.php




<?php
//
require_once("ligacao.php");
require_once("restricao.php");

$sql="SELECT * FROM v1_users ORDER BY nome, apelido";
$query=mysqli_query($ligar, $sql);
$total=mysqli_num_rows($query);
// se houver registos é que faço o fetch
if($total>0){
    // faço o fetch
    $fetch=mysqli_fetch_assoc($query);
}

?>
<!DOCTYPE html>
<html lang="pt">

<head>
    <meta charset="UTF-8">
    <title>Lista de utilizadores</title>
    <?php require_once("css.php");?>
</head>

<body>
  <div class="container">
           <?php require_once("navBar.php");?>
            <div class="jumbotron jumbotron-fluid">
                <div class="container">
                    <h1 class="display-4">Lista de Utilizadores</h1>
                    <table class="table">
                <thead class="thead-dark">
                    <tr>
                        <th scope="col">#</th>
                        <th scope="col">Nome</th>
                        <th scope="col">Apelido</th>
                        <th scope="col">Username</th>
                        <th scope="col">Privilegio</th>
                        <th scope="col">Alterar</th>
                    </tr>
                </thead>
                <tbody>
                    <!--(inicio tabela) esta tr depende do fetch  -->
                    <?php $i=0; do { $i++; ?>
                    <tr>
                        <th scope="row">
                            <?php echo $i ;?>
                        </th>
                        <td>
                            <?php echo $fetch['nome'];?>
                        </td>
                        <td>
                            <?php echo $fetch['apelido'];?>
                        </td>
                         <td>
                            <?php echo $fetch['username'];?>
                        </td>
                           <td>
                            <?php echo $fetch['privilegio'];?>
                        </td>
                     
                        <td><a href="usersAlterar.php?filtrar&idUser=<?php echo $fetch['idUser'];?>">Alterar</a></td>
                    </tr>
                    <?php } while($fetch=mysqli_fetch_assoc($query));?>
                    <!-- (fim da tabela)-->
                </tbody>
            </table>
                </div>
            </div>
        </div>
    <?php require_once("scripts.php"); ?>
</body>

</html>


-------------------------------

usersAlterar.php





<?php
require_once("restricao.php");
if(isset($_GET['filtrar'])){//filtrar vem da página usersListar
    $id=$_GET['idUser'];// refere-se ao utilizador que vai ser alterado. Diferente do utilizador que está a processar esta página fazendo a alteração.
    $sql="SELECT * FROM v1_users WHERE idUser=$id";
    require_once("ligacao.php");// só agora preciso da variável $ligar
    $query=mysqli_query($ligar, $sql);
    $total=mysqli_num_rows($query);
    if($total>0){ // 99.99999 % de ser sempre verdade
        $fetch=mysqli_fetch_assoc($query);
    }
    $sql="SELECT * FROM privilegios";
    $queryPriv=mysqli_query($ligar, $sql);
    $fetchPriv=mysqli_fetch_assoc($queryPriv);
   
}


?>
    <!DOCTYPE html>
    <html lang="en">

    <head>
        <meta charset="UTF-8">
        <title>Alterar Utilizador</title>
        <?php require_once("css.php");?>
    </head>

    <body>
        <div class="container">
            <?php require_once("navBar.php");?>
            <div class="jumbotron">
                <h1 class="display-4">Formulário de alteração de dados do utilizador</h1>
                <p class="lead">Note que nem todos os dados podem ser alterados</p>
                <hr class="my-4">
                <h3 class="display-5">Dados do utilizador:</h3>
             
                <label>Username:</label>
                <input type="text" class="form-control" value="<?php echo $fetch['username'];?>" readonly>
               
                 <label>Privilégio:</label>
               
                  <?php if($_SESSION['idPrivilegio']!=1){?>
               <select class="form-control">
                   <option value="<?php echo $fetch['idPrivilegio'];?>"><?php echo $fetch['privilegio'];?></option>                 
               </select>
             
               <?php }?>
               
                 <?php if($_SESSION['idPrivilegio']==1){?>
               <select class="form-control">
                   <option value="<?php echo $fetch['idPrivilegio'];?>"><?php echo $fetch['privilegio'];?></option>
                   <?php do {?>
                   <?php if($fetch['idPrivilegio']!=$fetchPriv['id']){?>
                   <option><?php echo $fetchPriv['privilegio'];?></option>
                   <?php }?>
                   <?php } while($fetchPriv=mysqli_fetch_assoc($queryPriv));?>
               </select>
               <?php }?>
             
                <h3 class="display-5" style="margin-top:50px">Dados Pessoais:</h3>
             
                <form>
                    <label>Nome:</label>
                    <input type="text" name="nome" class="form-control" value="<?php echo $fetch['nome'];?>">
                    <label>Apelido:</label>
                    <input type="text" name="apelido" class="form-control" value="<?php echo $fetch['apelido'];?>">
                    <hr class="my-4">

                </form>

            </div>
        </div>
        <?php require_once("scripts.php");?>
        <!-- incluo os 3 ficheiros javascript que fazem parte da minha framework bootstrap -->
    </body>

    </html>







----------------
restricao.php


<?php
// restricao.php
if(!isset($_SESSION)){ // para não estar sempre a iniciar
  session_start(); // para poder usar variáveis de sessão
  $idUser=$_SESSION['idUser'];   
}
if(!isset($_SESSION['username'])){
  header("Location:login.php");
}

?>


---------------

navBar.php



<nav class="navbar navbar-expand-lg navbar-light bg-light">
    <!--<a class="navbar-brand" href="#">Menu</a>-->
    <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
    <span class="navbar-toggler-icon"></span>
  </button>
    <div class="collapse navbar-collapse" id="navbarNav">
        <ul class="navbar-nav">
            <li class="nav-item active">
                <a class="nav-link" href="homepage.php">Home <span class="sr-only">(current)</span></a>
            </li> 
            <li class="nav-item dropdown">
                <a class="nav-link dropdown-toggle" data-toggle="dropdown" href="#" role="button" aria-haspopup="true" aria-expanded="false">Cursos</a>
                <div class="dropdown-menu">
                    <a class="dropdown-item" href="cursosCriar.php">Criar</a>
                    <a class="dropdown-item" href="cursosListar.php">Listar</a>                   
                </div>
            </li>
 <li class="nav-item dropdown">
                <a class="nav-link dropdown-toggle" data-toggle="dropdown" href="#" role="button" aria-haspopup="true" aria-expanded="false">Graus</a>
                <div class="dropdown-menu">
                    <a class="dropdown-item" href="grausCriar.php">Criar</a>
                    <a class="dropdown-item" href="grausListar.php">Listar</a>                   
                </div>
            </li>
           
             <li class="nav-item dropdown">
                <a class="nav-link dropdown-toggle" data-toggle="dropdown" href="#" role="button" aria-haspopup="true" aria-expanded="false">Utilizadores</a>
                <div class="dropdown-menu">
                    <a class="dropdown-item" href="usersCriar.php">Criar</a>
                    <a class="dropdown-item" href="usersListar.php">Listar</a>                   
                </div>
            </li>
           
             <li class="nav-item dropdown">
                <a class="nav-link dropdown-toggle" data-toggle="dropdown" href="#" role="button" aria-haspopup="true" aria-expanded="false">Pessoas</a>
                <div class="dropdown-menu">
                    <a class="dropdown-item" href="pessoasCriar.php">Criar</a>
                    <a class="dropdown-item" href="pessoasListar.php">Listar</a>                 
                </div>
            </li>
           
             <li class="nav-item active">
        <a class="nav-link" href="sair.php">Sair <span class="sr-only">(current)</span></a>
      </li>
           
        </ul>
    </div>
</nav>
<?php require_once("scripts.php"); ?>




----------------------------

views.txt

v1_cursos
SELECT cursos.id, nome, descricao, idGrau, cursos.estado, grau FROM cursos, graus WHERE cursos.idGrau=graus.id

v1_users
SELECT users.id AS idUser, idPessoa, username, privilegios.id AS idPrivilegio, nome, apelido, privilegio, users.estado AS estadoUser, pessoas.estado AS estadoPessoa
FROM users, pessoas, privilegios
WHERE pessoas.id = users.idPessoa
AND users.idPrivilegio = privilegios.id

Sem comentários:

Enviar um comentário