quarta-feira, 14 de março de 2018

TPW - Aulas 27-28-29

homepage.php

<?php
require_once("restricao.php"); // é a chave
?>
    <!DOCTYPE html>
    <html lang="en">

    <head>
        <meta charset="UTF-8">
        <title>Homepage</title>
        <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
    </head>

    <body>

        <div class="container">
            <?php require_once("navBar.php");?>
        </div>
    </body>

    </html>

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

grausCriar.php

<?php
// grausCriar.php
require_once("restricao.php");
if(isset($_GET['criar'])){
    // inicio do Teste (se o grau já consta da base de dados)
    $grau=addslashes($_GET['grau']);  // havia aqui um erro...  
    require_once("ligacao.php");
    $sql="SELECT id FROM graus  WHERE grau LIKE '$grau'";
    $query=mysqli_query($ligar, $sql);
    $total=mysqli_num_rows($query); 
    // Fim do Teste (se o grau já consta da base de dados)    
    if($total==0){
        // regista se não existir na base de dados
         $obs=addslashes($_GET['obs']);  // estava mal feito.. tinha era de testar se o obs estava nulo
         $sql="INSERT INTO graus (grau, obs, idUser) VALUES ('$grau', '$obs', $idUser)";
    $queryRegistar=mysqli_query($ligar, $sql);
    $caminho="sucesso";
    }
    elseif($total!=0){       
        // não regista existir na base de dados        
       $caminho="fracasso"; 
    }
    mysqli_close($ligar);
    mysqli_free_result($query);
    header("Location:?$caminho");
}


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

    <head>
        <meta charset="UTF-8">
        <title>Criar graus</title>
        <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
    </head>

    <body>

        <div class="container">
            <?php require_once("navBar.php");?>
            <div class="jumbotron">
                <?php require_once("mensagensURL.php"); ?>

                <h1 class="display-4">Criação de um novo Grau</h1>
                <p class="lead">Esta página serve para efetuar registos dos graus que serão usados no momento de criar cursos.</p>
                <hr class="my-4">
                <p>Note que não pode haver 2 graus repetidos.</p>
                <form>
                    <div class="form-group">
                        <label for="grau">Grau: *</label>
                        <input class="form-control" type="text" name="grau" required>
                    </div>
                    <div class="form-group">
                        <label for="grau">Observações:</label>
                        <textarea class="form-control" name="obs"></textarea>
                    </div>
                    <div class="form-group">
                        <input class="btn btn-primary" type="submit" name="criar" value="Registar novo grau">
                    </div>
                    <p class="lead">* obrigatório</p>
                </form>
            </div>
        </div>
        <?php require_once("scripts.php"); ?>
    </body>

    </html>
    <?php

?>

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

grausListar.php

<?php

require_once("ligacao.php");
require_once("restricao.php");


$sql="SELECT * FROM graus";
$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>Listar Graus</title>
        <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
    </head>

    <body>       
        <div class="container">
            <?php require_once("navBar.php");?>
            <div class="jumbotron jumbotron-fluid">
                <div class="container">
                    <h1 class="display-4">Lista de graus</h1>
                    <table class="table">
                <thead class="thead-dark">
                    <tr>
                        <th scope="col">#</th>
                        <th scope="col">Grau</th>
                        <th scope="col">Observações</th>
                        <th scope="col">Estado</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['grau'];?>
                        </td>
                        <td>
                            <?php echo $fetch['obs'];?>
                        </td>
                        <td>
                            <?php 
              if($fetch['estado']==1){ echo "Ativo";}elseif($fetch['estado']==0){ echo "Inativo";} 
          ?>
                        </td>
                        <td><a href="grausAlterar.php?idGrau=<?php echo $fetch['id'];?>">Alterar</a></td>
                    </tr>
                    <?php } while($fetch=mysqli_fetch_assoc($query));?>
                    <!-- (fim da tabela)-->
                </tbody>
            </table> 
                </div>
            </div>
        </div>
    </body>

    </html>


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

cursosCriar.php

<?php
// cursosCriar.php
require_once("restricao.php");
require_once("ligacao.php");
// pedir os graus
if(!isset($_GET['criar'])){
  $sql="SELECT * FROM graus ORDER BY grau";
$query=mysqli_query($ligar, $sql);
$fetch=mysqli_fetch_assoc($query);  
}elseif(isset($_GET['criar'])){
    
    $nome=addslashes($_GET['nome']);
    $idGrau=$_GET['idGrau'];
    // preciso de garantir que não ha 2 cursos com o mesmo nome
    // para o mesmo grau
    $sql="SELECT id FROM cursos WHERE nome LIKE '$nome' and idGrau = $idGrau";
    $query=mysqli_query($ligar, $sql);
    $total=mysqli_num_rows($query);
    
    if($total==0){
        // sucesso        
        $descricao=addslashes($_GET['descricao']);
        $sql="INSERT INTO cursos (idGrau, nome, descricao) VALUES ($idGrau, '$nome', '$descricao')";
        mysqli_query($ligar, $sql) or die("Erro 1");
        $caminho="sucesso";
        
    }elseif($total!=0){
        // fracasso
        $caminho="fracasso";
    }
    header("Location:?$caminho");    
}

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

    <head>
        <meta charset="UTF-8">
        <title>Criar cursos</title>
        <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
    </head>

    <body>

        <div class="container">
            <?php require_once("navBar.php");?>

            <div class="jumbotron">

                <?php require_once("mensagensURL.php"); ?>


                <h1 class="display-4">Criar novo Curso!</h1>
                <p class="lead">Preencha o formulário para criar um novo Curso.</p>
                <hr class="my-4">
                <p>Note que não pode haver 2 cursos com a mesma designação.</p>

                <form>
                    <div class="form-group">
                        <select name="idGrau" class="form-control">
               <?php do {?>
                <option value="<?php echo $fetch['id'];?>"><?php echo $fetch['grau'];?></option> 
                <?php } while($fetch=mysqli_fetch_assoc($query)); ?>             
            </select>
                    </div>
                    <div class="form-group">
                        <label>Designação do Curso</label>
                        <input type="text" name="nome" required class="form-control">
                    </div>
                    <div class="form-group">
                        <label>Descrição do Curso</label>
                        <textarea name="descricao" required class="form-control"></textarea>
                    </div>
                    <div class="form-group">
                        <input type="submit" name="criar" value="Registar novo Curso" class="btn btn-primary">
                    </div>
                </form>
            </div>
        </div>
        <?php require_once("scripts.php"); ?>
    </body>

    </html>
    <?php
mysqli_free_result($query);
mysqli_close($ligar);
?>

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

cursosListar.php

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

$sql="SELECT * FROM v1_cursos ORDER BY nome, grau";
$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>Listar Graus</title>
        <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
    </head>

    <body>
        <div class="container">
           <?php require_once("navBar.php");?>
            <div class="jumbotron jumbotron-fluid">
                <div class="container">
                    <h1 class="display-4">Lista de Cursos</h1>
                    <table class="table">
                <thead class="thead-dark">
                    <tr>
                        <th scope="col">#</th>
                        <th scope="col">Nome</th>
                        <th scope="col">Descrição</th>
                        <th scope="col">Grau</th>
                        <th scope="col">Estado</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['descricao'];?>
                        </td>
                         <td>
                            <?php echo $fetch['grau'];?>
                        </td>
                        <td>
                            <?php 
              if($fetch['estado']==1){ echo "Ativo";}elseif($fetch['estado']==0){ echo "Inativo";} 
          ?>
                        </td>
                        <td><a href="cursosAlterar.php?idCurso=<?php echo $fetch['id'];?>">Alterar</a></td>
                    </tr>
                    <?php } while($fetch=mysqli_fetch_assoc($query));?>
                    <!-- (fim da tabela)-->
                </tbody>
            </table> 
                </div>
            </div>
        </div>
    </body>

    </html>

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

views.txt

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


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

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>
        </ul>
    </div>
</nav>
<?php require_once("scripts.php"); ?>

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

navBar.php (atualizado)

<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>
         
        </ul>
    </div>
</nav>
<?php require_once("scripts.php"); ?>

----------------------------------------------------------   16:47

pessoasAlterar.php

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

if(!isset($_GET['alterar'])){
$idPessoa=$_GET['idPessoa'];
$sql="SELECT * FROM pessoas  WHERE id=$idPessoa";
$query=mysqli_query($ligar, $sql);
$fetch=mysqli_fetch_assoc($query);
}

if(isset($_GET['alterar'])){
 $idPessoa=$_GET['idPessoa'];
$nome=$_GET['nome'];
$apelido=$_GET['apelido'];

$sql="UPDATE  pessoas SET  nome =  '$nome', apelido =  '$apelido' WHERE  id =$idPessoa";
$query=mysqli_query($ligar, $sql);
    header("Location:pessListar.php?sucesso");
}
?>
    <!DOCTYPE html>
    <html lang="pt">

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

    <body>
       <div class="container">
            <?php require_once("navBar.php");?>
            <div class="jumbotron">
                <?php require_once("mensagensURL.php"); ?>

                <h1 class="display-4">Alteração dos dados pessoais</h1>
                <p class="lead">Pode alterar os dados pessoais da pessoa selecionada.</p>             
                <form>
                    <div class="form-group">
                        <label for="grau">Nome: *</label>
                        <input class="form-control" type="text" name="nome" required value="<?php echo $fetch['nome'];?>">
                    </div>
                    <div class="form-group">
                        <label for="grau">Apelido:</label>
                       <input class="form-control" type="text" name="apelido" required value="<?php echo $fetch['apelido'];?>">
                    </div>
                    <div class="form-group">
                       <input type="hidden" name="idPessoa" value="<?php echo $fetch['id'];?>">
                        <input class="btn btn-primary" type="submit" name="alterar" value="Alterar dados da pessoa">
                    </div>
                    <p class="lead">* obrigatório</p>
                </form>
            </div>
        </div>

        <?php require_once("scripts.php");?>
    </body>

    </html>

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

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="cursosAlterar.php?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>

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

pessListar.php

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

$sql="SELECT * FROM pessoas 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 Pessoas</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 Pessoas</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">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><a href="pessoasAlterar.php?idPessoa=<?php echo $fetch['id'];?>">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>

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

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
FROM users, pessoas, privilegios
WHERE pessoas.id = users.idPessoa
AND users.idPrivilegio = privilegios.id





Sem comentários:

Enviar um comentário