Escolar Documentos
Profissional Documentos
Cultura Documentos
Projeto
Desenvolvimento de um sistema WEB de Gestão de
questionários, tipo Kahoot
1
Índice
Base de dados ............................................................................................................................. 3
Interface ...................................................................................................................................... 4
Página de apresentação: ......................................................................................................... 4
Login ........................................................................................................................................ 4
Registo ..................................................................................................................................... 5
Visualização de todos os Registados ....................................................................................... 6
Criar Kahoot ............................................................................................................................ 6
Login Parte do Aluno ............................................................................................................... 7
Respostas Parte do Aluno........................................................................................................ 7
Explicação breve da parte de código ....................................................................................... 8
Conclusão: ................................................................................................................................. 49
2
Base de dados
Numa fase inicial começou-se com o seguinte esquema da base de dados:
Porém não foi possível carregar para o xamp estas tabelas. Por isso optamos por mudar as
tabelas passando a não ter chaves estrangeiras, ao custo da procura e aumentar a dificuldade a
escrever/ler da bd.
3
Interface
Página de apresentação:
Aqui o utilizador pode optar entre criar conta ou fazer o login:
Login
Nesta parte é apresentada uma janela simples na qual é pedido o email do utilizador e a
password e é feita a distinção entre aluno e professor.
4
Registo
Nesta página é pedido a quem frequenta a página para criar utilizador com o preenchimento
de alguns dados pessoais:
5
Visualização de todos os Registados
Aqui é possível modificar os dados das tabelas carregando no lápis e eliminar todos os dados
carregando no caixote do lixo. Também é possível ir para o menu de criação de perguntas onde
diz kahoot.
Criar Kahoot
Nesta parte o usuário com aceso “Professor” é capaz de adicionar o número do questionário,
código, perguntas e as respostas.
6
Login Parte do Aluno
Nesta parte o aluno será redirecionado para uma página onde e necessário inserir o código.
A opção 1,2,3 e 4 são guardadas numa base de dados sendo que essa base de dados guarda
também o número da pergunta.
7
Explicação breve da parte de código
Home.php
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>SITE | GN</title>
<style>
body{
text-align: center;
color: white;
.box{
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%,-50%);
8
background-color: rgba(0, 0, 0, 0.6);
padding: 30px;
border-radius: 10px;
a{
text-decoration: none;
color: white;
border-radius: 10px;
padding: 10px;
a:hover{
background-color: dodgerblue;
</style>
</head>
<body>
<div class="box">
<a href="login.php">Login</a>
<a href="formulario.php">Register</a>
</div>
</body>
</html>
Este ficheiro corresponde ao html responsável pela página de apresentação. Tem vários
elementos configuráveis para o aspeto e para os botões que aparecem na mesma.
9
formulário.php
<<?php
include_once('config.php');
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$nome = $_POST["nome"];
$email = $_POST["email"];
$telefone = $_POST["telefone"];
$ProfOUAluno = $_POST["ProfOUAluno"];
$data_nascimento = $_POST["data_nascimento"];
$cidade = $_POST["cidade"];
$concelho = $_POST["concelho"];
$endereco = $_POST["endereco"];
$passwordd = $_POST["passwordd"];
$result = mysqli_query($conexao, "INSERT INTO usuarios (nome, email, telefone, ProfOUAluno, data_nasc,
cidade, concelho, endereco, passwordd)
VALUES
('$nome','$email','$telefone','$ProfOUAluno','$data_nascimento','$cidade','$concelho','$endereco','$passwordd')
");
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Formulário | GN</title>
<style>
body {
10
background-image: linear-gradient(to right, rgb(0, 0, 0), rgb(0, 0, 0));
margin: 0;
display: flex;
justify-content: center;
align-items: center;
height: 100vh;
.box {
color: white;
padding: 20px;
border-radius: 2px;
width: 30%;
fieldset {
border-radius: 10px;
margin: 20px 0;
legend {
padding: 10px;
text-align: center;
background-color: dodgerblue;
border-radius: 8px;
color: white;
.inputBox {
position: relative;
margin-bottom: 20px;
11
}
.inputUser {
background: none;
border: none;
outline: none;
color: white;
font-size: 15px;
width: 92%;
letter-spacing: 2px;
padding: 8px;
.labelInput {
position: absolute;
top: 0;
left: 0;
pointer-events: none;
transition: .5s;
color: dodgerblue;
.inputUser:focus ~ .labelInput,
.inputUser:valid ~ .labelInput {
top: -20px;
font-size: 12px;
#data_nascimento {
border: none;
padding: 8px;
border-radius: 10px;
outline: none;
font-size: 15px;
12
}
#submit {
width: 100%;
border: none;
padding: 15px;
color: white;
font-size: 15px;
cursor: pointer;
border-radius: 10px;
#submit:hover {
.control {
margin-top: 20px;
text-align: center;
.button {
background-color: #ff3860;
color: white;
text-decoration: none;
border-radius: 5px;
.button:hover {
background-color: #d71f3b;
13
</style>
</head>
<body>
<div class="box">
<fieldset>
<legend><b>Register</b></legend>
<div class="inputBox">
</div>
<div class="inputBox">
</div>
<div class="inputBox">
</div>
<p>Escolha:</p>
<label for="Professor">Professor</label>
<br>
<label for="Aluno">Aluno</label>
<br>
<br>
<div class="inputBox">
</div>
<div class="inputBox">
14
<label for="concelho" class="labelInput">Concelho</label>
</div>
<div class="inputBox">
</div>
<div class="inputBox">
</div>
<div class="control">
</div>
</fieldset>
</form>
</div>
</body>
</html>
Este ficheiro divide-se em uma parte html e outra php. A parte HTML são recolhidos todos as
variáveis necessárias para um registro como: nome , data de nascimento … . Essas varáveis são
associadas a variáveis php. É feito através do método POST(maneira de enviar arquivos para um
script PHP). Na parte de PHP é chamado através da função include_once o ficheiro php que
possui as informações para ser possível a ligação à base de dados. Dentro do if existe a verificação
se o formulário foi enviado usando o metodo POST. As variáveis adquiridas através do método
POST são igualadas a outras que possuem o mesmo nome. Na função mysqli_query são inseridos
na tabela usuários os valores das variáveis respetivamente.
Config.php
<?php
$dbHost = 'localHost';
$dbUsername = 'root';
$dbPassword = '';
15
/*if($conexao->connect_errno){
echo "Erro";
}else{
}*/
?>
login.php
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Tela de login</title>
<style>
body{
div{
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%,-50%);
padding: 80px;
border-radius: 15px;
color: #fff;
16
}
input {
padding: 15px;
border: none;
outline: none;
font-size: 15px;
.inputSubmit {
width: 48%; /* Set the width to 48% to leave some space between buttons */
border: none;
padding: 15px;
border-radius: 10px;
color: white;
font-size: 15px;
text-align: center;
.inputSubmit1 {
width: 70px; /* Set the width to 48% to leave some space between buttons */
border: none;
padding: 15px;
border-radius: 10px;
color: white;
font-size: 15px;
text-align: center;
17
.inputSubmit:hover {
cursor: pointer;
.inputSubmit1:hover {
cursor: pointer;
</style>
</head>
<body>
<div>
<h1>Login</h1>
<br><br>
<br><br>
</div>
</body>
</html>
O ficheiro login.php é um ficheiro que recolhe duas frases, uma a palavra-passe e outra o
email e reencaminha para o ficheiro verificarLogin.php
verificarLogin.php
<?php
session_start();
18
include_once('config.php');
$email = $_POST['email'];
$passwordd = $_POST['passwordd'];
$aluno = $_POST['aluno'];
$sql = "SELECT * FROM usuarios WHERE email = '$email' AND passwordd = '$passwordd'";
$result = $conexao->query($sql);
if (mysqli_num_rows($result) < 1) {
header('Location: login.php');
unset($_SESSION['email']);
unset($_SESSION['senha']);
} else {
$row = mysqli_fetch_assoc($result);
$profOUAluno = $row['ProfOUAluno'];
if ($profOUAluno == 'Professor') {
$_SESSION['email'] = $email;
$_SESSION['passwordd'] = $passwordd;
header('Location: sistema.php');
} else {
// Se for Aluno, redireciona para outra página ou realiza alguma outra ação
// header('Location: respostasAlunos.php');
header("Location: nQuestionario.php?parametro=$email");
19
}
} else {
header('Location: login.php');
?>
nQuestionario.php
<?php
include_once('config.php');
session_start();
$email = $_GET['parametro'];
$num = $_POST['num_questionario'];
$result = $conexao->query($sql);
if (mysqli_num_rows($result) < 1) {
else {
echo("................");
header("Location: respostasAlunos.php?parametro=$email&codigo=$num");
20
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Tela de login</title>
<style>
body {
div {
position: absolute;
top: 50%;
left: 50%;
padding: 80px;
border-radius: 15px;
color: #fff;
input {
padding: 15px;
border: none;
outline: none;
font-size: 15px;
.inputSubmit {
width: 48%; /* Set the width to 48% to leave some space between buttons */
21
background-color: rgb(0, 0, 255);
border: none;
padding: 15px;
border-radius: 10px;
color: white;
font-size: 15px;
text-align: center;
.inputSubmit1 {
width: 70px; /* Set the width to 48% to leave some space between buttons */
border: none;
padding: 15px;
border-radius: 10px;
color: white;
font-size: 15px;
text-align: center;
.inputSubmit:hover {
cursor: pointer;
.inputSubmit1:hover {
cursor: pointer;
</style>
</head>
<body>
<div>
<h1>Código</h1>
22
<br><br>
</form>
</div>
</body>
</html>
No nQuestionario.php divide-se numa parte php e noutra html. A parte html cria a interface
vista nas figuras introdutórias e recolhe a variável num_questionario. A variável é recolhida
pelo método POST no código PHP e nesse mesmo código é verificado se existe algum código na
tabela perguntas.
RespostasAlunos.php
<?php
session_start();
include_once('configRespostas.php');
$email = $_GET['parametro'];
$codigo = $_GET['codigo'];
$count_linhas = $conexao->query($sql_count);
$limite = $count_linhas->fetch_assoc();
$_SESSION['perguntas_limit'] = $limite['total_perguntas'];
} else {
23
if (!isset($_SESSION['pergunta_atual'])) {
echo('primeira vez');
$_SESSION['pergunta_atual'] = 1;
$result1 = $conexao->query($sql);
if ($result1->num_rows > 0) {
$row = $result1->fetch_assoc();
}*/
else {
echo('ELSE: pergunta_atual:');
$_SESSION['pergunta_atual'] += 1;
echo($_SESSION['pergunta_atual']);
echo('----------');
//$_SESSION["perguntas"] = $result1;
$cur_row = $_SESSION['pergunta_atual'];
$result1 = $conexao->query($sql);
// Verifique se há resultados
if ($result1->num_rows > 0) {
$row = $result1->fetch_assoc();
$pergunta1 = $row['pergunta1'];
$opcaoA = $row['opcaoA'];
$opcaoB = $row['opcaoB'];
$opcaoC = $row['opcaoC'];
$opcaoD = $row['opcaoD'];
$questionarios = $row['questionarios'];
24
$nPergunta = $row['nPergunta'];
//$questionarios1 = $questionarios;
//$nPergunta1 = $nPergunta;
} else {
echo("####");
echo($nPergunta);
echo("####");
if (isset($_POST['submit'])) {
$Resposta = $_POST['Resposta'];
VALUES ('$Resposta','$email','$nPergunta','$questionarios')");
if ($result) {
//$row = $result1->fetch_assoc();
session_destroy();
header("Location: acabou.php");
25
} /*else {
$_SESSION['pergunta_atual'] += 1;
echo($_SESSION['pergunta_atual']);
}*/
} else {
$conexao->close();
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Formulário | GN</title>
<style>
body {
margin: 0;
display: flex;
justify-content: center;
align-items: center;
height: 100vh;
26
.form-horizontal {
width: 30%;
color: white;
padding: 20px;
border-radius: 15px;
fieldset {
border-radius: 10px;
margin: 20px 0;
padding: 15px;
legend {
padding: 10px;
text-align: center;
background-color: dodgerblue;
border-radius: 8px;
color: white;
.field {
margin-bottom: 20px;
text-align: center;
.control {
text-align: center;
.button {
27
background-color: #ff3860;
color: white;
border-radius: 10px;
.button:hover {
background-color: #d71f3b;
</style>
</head>
<body>
<fieldset>
<legend><b>Resposta:</b></legend>
<div class="field">
<label class="label"></label>
<div class="control">
</div>
</div>
<!--
<div class="field">
<div class="control">
<p>Escolha :</p>
<label class="radio">
28
</label>
<br>
<label class="radio">
</label>
<br>
<label class="radio">
</label>
<br>
<label class="radio">
</label>
</div>
</div>
<div class="field">
<div class="control">
</div>
</div>
</fieldset>
</form>
</body>
</html>
29
dos alunos para posterior análise ou avaliação. Quando chega ao fim das perguntas é enviado
um ficheiro(acabou.php) e posteriormente é reencaminhado para a tela de login.
Acabou.php
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Formulário | GN</title>
<style>
body {
margin: 0;
display: flex;
justify-content: center;
align-items: center;
height: 100vh;
.form-horizontal {
width: 30%;
color: white;
padding: 20px;
border-radius: 15px;
fieldset {
30
border-radius: 10px;
margin: 20px 0;
legend {
padding: 10px;
text-align: center;
background-color: dodgerblue;
border-radius: 8px;
color: white;
.field {
margin-bottom: 20px;
text-align: center;
.control {
text-align: center;
.button {
background-color: #ff3860;
color: white;
text-decoration: none;
border-radius: 10px;
cursor: pointer;
.button:hover {
background-color: #d71f3b;
31
</style>
</head>
<body>
<fieldset>
<legend><b>ACABOU!</b></legend>
<div class="field">
<div class="control">
</div>
</div>
</fieldset>
</form>
<?php
if (isset($_POST['Sair'])) {
header("Location: home.php");
?>
</body>
</html>
sistema.php
<?php
session_start();
include_once('config.php');
32
// print_r($_SESSION);
unset($_SESSION['email']);
unset($_SESSION['passwordd']);
header('Location: login.php');
$logado = $_SESSION['email'];
if(!empty($_GET['search']))
$data = $_GET['search'];
$sql = "SELECT * FROM usuarios WHERE id LIKE '%$data%' or nome LIKE '%$data%' or email LIKE '%$data%'
ORDER BY id DESC";
else
$result = $conexao->query($sql);
?>
USER
<!DOCTYPE html>
<!DOCTYPE html>
<html lang="en">
<head>
<style>
body {
background-color: black;
color: white;
text-align: center;
.table-bg {
33
}
.box-search {
display: flex;
justify-content: center;
gap: .1%;
.navbar.bg-primary {
background-color: black; /* Set the background color to black for the navbar */
</style>
</head>
</html>
</style>
</head>
<body>
<div class="container-fluid">
<span class="navbar-toggler-icon"></span>
</button>
</div>
<div class="d-flex">
</div>
<div class="container-fluid">
34
<span class="navbar-toggler-icon"></span>
</button>
</div>
<div class="d-flex">
</div>
</nav>
<br>
<?php
?>
<br>
<div class="m-5">
<thead>
<tr>
<th scope="col">#</th>
<th scope="col">Nome</th>
<th scope="col">passwordd</th>
<th scope="col">Email</th>
<th scope="col">Telefone</th>
<th scope="col">ProfOUAluno</th>
<th scope="col">Cidade</th>
<th scope="col">Concelho</th>
<th scope="col">Endereço</th>
<th scope="col">...</th>
</tr>
</thead>
<tbody>
<?php
while($user_data = mysqli_fetch_assoc($result)) {
echo "<tr>";
35
echo "<td>".$user_data['id']."</td>";
echo "<td>".$user_data['nome']."</td>";
echo "<td>".$user_data['passwordd']."</td>";
echo "<td>".$user_data['email']."</td>";
echo "<td>".$user_data['telefone']."</td>";
echo "<td>".$user_data['ProfOUAluno']."</td>";
echo "<td>".$user_data['data_nasc']."</td>";
echo "<td>".$user_data['cidade']."</td>";
echo "<td>".$user_data['concelho']."</td>";
echo "<td>".$user_data['endereco']."</td>";
echo "<td>
</svg>
</a>
</svg>
</a>
</td>";
echo "</tr>";
?>
</tbody>
</table>
</div>
</body>
<script>
36
O ficheiro sistema.php consulta os dados da tabela usuarios e reencaminha para outros
ficheiros através dos botões kahoot, da foto do lápis, e do caixote do lixo. Quando carregamos
no botão kahoot somos reencaminhados para o ficheiro criacaoPerguntas.php, quando
carregamos no botão do lápis somos reencaminhados para o edit.php e por fim quando
carregamos no botão do caixote do lixo somos reencaminhados para o ficheiro delete.php.
criacaoPerguntas.php
<?php
include_once('config.php');
session_start();
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$pergunta1 = $_POST['Pergunta'];
$opcaoA = $_POST['opcaoA'];
$opcaoB = $_POST['opcaoB'];
$opcaoC = $_POST['opcaoC'];
$opcaoD = $_POST['opcaoD'];
$questionario = $_POST['questionario'];
$codigo = $_POST['codigo'];
$nPergunta = $_POST['nPergunta'];
$result = mysqli_query($conexao, "INSERT INTO perguntas (pergunta1, opcaoA, opcaoB, opcaoC, opcaoD, questionarios,
nPergunta, codigo)
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Formulário de Perguntas</title>
<style>
body {
37
margin: 0;
display: flex;
justify-content: center;
align-items: center;
height: 100vh;
.container {
color: white;
padding: 20px;
border-radius: 2px;
width: 30%;
fieldset {
border-radius: 10px;
margin: 20px 0;
legend {
padding: 10px;
text-align: center;
background-color: dodgerblue;
border-radius: 8px;
color: white;
.field {
position: relative;
margin-bottom: 20px;
.input {
background: none;
38
border: none;
outline: none;
color: white;
font-size: 15px;
width: 92%;
letter-spacing: 2px;
padding: 8px;
.label {
position: absolute;
top: 0;
left: 0;
pointer-events: none;
transition: .5s;
color: dodgerblue;
.input:focus ~ .label,
.input:valid ~ .label {
top: -20px;
#submit {
width: 100%;
border: none;
padding: 15px;
color: white;
font-size: 15px;
cursor: pointer;
border-radius: 10px;
39
#submit:hover {
.control {
margin-top: 20px;
text-align: center;
.button {
background-color: #ff3860;
color: white;
text-decoration: none;
border-radius: 5px;
.button:hover {
background-color: #d71f3b;
</style>
</head>
<body class="has-background-light">
<div class="container">
<fieldset>
<div class="field">
<div class="control">
</div>
</div>
<div class="field">
40
<label class="label" for="nPergunta">Escreva o numero da Pergunta:</label>
<div class="control">
</div>
</div>
<div class="field">
<div class="control">
</div>
</div>
<div class="field">
<div class="control">
</div>
</div>
<div class="field">
<div class="control">
</div>
</div>
<div class="field">
<div class="control">
</div>
</div>
41
<!-- Text input-->
<div class="field">
<div class="control">
</div>
</div>
<div class="field">
<div class="control">
</div>
</div>
<div class="control">
</div>
<div class="control">
</div>
</div>
</fieldset>
</form>
</div>
</body>
</html>
O ficheiro criação de perguntas serve para criar as perguntas, apenas o professor tem acesso e
pode por dados como número da pergunta entre outros. Funciona como o formulário só que em
vez de enviar os dados para a tabela usuários envia os dados para a tabela perguntas.
edit.php
<?php
if (!empty($_GET['id'])) {
42
include_once('config.php');
$id = $_GET['id'];
$result = $conexao->query($sqlSelect);
if ($result->num_rows > 0) {
$nome = $user_data["nome"];
$email = $user_data["email"];
$telefone = $user_data["telefone"];
$ProfOUAluno = $user_data["ProfOUAluno"];
$data_nasc = $user_data["data_nasc"];
$cidade = $user_data["cidade"];
$concelho = $user_data["concelho"];
$endereco = $user_data["endereco"];
$passwordd = $user_data["passwordd"];
} else {
header('location: sistema.php');
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Formulário | GN</title>
43
<style>
body {
margin: 0;
display: flex;
justify-content: center;
align-items: center;
height: 100vh;
.box {
color: white;
padding: 20px;
border-radius: 2px;
width: 30%;
fieldset {
border-radius: 10px;
margin: 20px 0;
legend {
padding: 10px;
text-align: center;
background-color: dodgerblue;
border-radius: 8px;
color: white;
.inputBox {
position: relative;
margin-bottom: 20px;
44
}
.inputUser {
background: none;
border: none;
outline: none;
color: white;
font-size: 15px;
width: 92%;
letter-spacing: 2px;
padding: 8px;
.labelInput {
position: absolute;
top: 0;
left: 0;
pointer-events: none;
transition: .5s;
color: dodgerblue;
.inputUser:focus ~ .labelInput,
.inputUser:valid ~ .labelInput {
top: -20px;
font-size: 12px;
#data_nascimento {
border: none;
padding: 8px;
border-radius: 10px;
outline: none;
font-size: 15px;
#submit {
45
background-image: linear-gradient(to right, rgb(0, 92, 197), rgb(90, 20, 220));
width: 100%;
border: none;
padding: 15px;
color: white;
font-size: 15px;
cursor: pointer;
border-radius: 10px;
#submit:hover {
.control {
margin-top: 20px;
text-align: center;
.button {
background-color: #ff3860;
color: white;
text-decoration: none;
border-radius: 5px;
.button:hover {
background-color: #d71f3b;
</style>
</head>
<body>
<div class="box">
<fieldset>
46
<legend><b>Edit</b></legend>
<div class="inputBox">
</div>
<div class="inputBox">
<input type="text" name="email" id="email" class="inputUser" value="<?php echo ($email) ?>" required>
</div>
<div class="inputBox">
</div>
<p>Escolha:</p>
<label for="Professor">Professor</label>
<br>
<label for="Aluno">Aluno</label>
<br>
<br>
<div class="inputBox">
</div>
<div class="inputBox">
</div>
<div class="inputBox">
</div>
<div class="inputBox">
47
<label for="passwordd" class="labelInput">Password</label>
</div>
<div class="control">
</div>
</fieldset>
</form>
</div>
</body>
</html>
</html>
O arquivo edit.php é um script PHP que verifica se um parâmetro 'id' foi passado por meio de uma requisição GET.
Se esse parâmetro existir e for um valor numérico, o script exibirá um formulário HTML para a edição de dados do
usuário. Quando o formulário é submetido, os dados são enviados para o script saveEdit.php usando o método
POST.Dentro do saveEdit.php, há uma verificação para determinar se o formulário foi submetido (por meio do
parâmetro 'update'). Se essa condição for verdadeira, o script recupera os dados do formulário. Em seguida, constrói
e executa uma consulta SQL para atualizar os dados do usuário no banco de dados. Após a conclusão da atualização,
o script redireciona o usuário para a página 'sistema.php'.É crucial assegurar que o tratamento apropriado seja
realizado para lidar com a resposta da atualização na página de destino ('sistema.php'). Este processo geralmente
envolve exibir mensagens informativas ou de erro para o usuário, dependendo do sucesso ou falha da operação de
atualização.
saveEdit.php
<?php
include_once('config.php');
if(isset($_POST['update'])){
$id = $_POST["id"];
$nome = $_POST["nome"];
$email = $_POST["email"];
$telefone = $_POST["telefone"];
$ProfOUAluno = $_POST["ProfOUAluno"];
$data_nasc = $_POST["data_nasc"];
$cidade = $_POST["cidade"];
$concelho = $_POST["concelho"];
$endereco = $_POST["endereco"];
$passwordd = $_POST["passwordd"];
48
$sqlUpdate = "UPDATE usuarios SET nome='$nome', email='$email', telefone='$telefone', ProfOUAluno='$ProfOUAluno',
data_nasc='$data_nasc', cidade='$cidade', concelho='$concelho', endereco='$endereco', passwordd='$passwordd' WHERE
id='$id'";
$result = $conexao->query($sqlUpdate);
header('Location: sistema.php');
?>
Delete.php
<?php
include_once('config.php');
$id = $_GET['id'];
$result = $conexao->query($sqlSelect);
if ($result->num_rows > 0) {
$resultDelete = $conexao->query($sqlDelete);
header('location: sistema.php');
?>
O código PHP fornecido realiza a exclusão de um usuário com base no ID fornecido pela URL.
Se a operação for bem-sucedida, uma mensagem de resumo é construída indicando que o
usuário com o ID correspondente foi excluído com sucesso. Essa mensagem de resumo é então
incluída na URL de redirecionamento para a página 'sistema.php.
Conclusão:
Este projeto PHP e MySQL representou uma imersão prática no desenvolvimento web. Ao criar
o conjunto de arquivos, pudemos aplicar os conceitos aprendidos, como manipulação de dados
no MySQL e interação dinâmica com os usuários usando PHP.A capacidade de extrair e exibir
informações das tabelas, destaca a funcionalidade prática dessa combinação de tecnologias.
Enfrentei desafios, fortalecendo minhas habilidades de resolução de problemas e compreensão
49
do ciclo de vida de uma aplicação web. Este projeto não apenas consolidou meu entendimento
em PHP e MySQL, mas também deu-me uma visão valiosa sobre o desenvolvimento de sistemas
dinâmicos. Essa experiência serve como um trampolim para desafios futuros, contribuindo para
o nosso crescimento como desenvolvedores.
50