Tabela do banco:
Create table novo_colaborador_portal (
ID Int UNSIGNED ZEROFILL NOT NULL AUTO_INCREMENT,
data Date,
nome Varchar(50),
funcao Varchar(30),
diaA Int,
diaB Int,
diaC Int,
diaD Int,
diaE Int,
diaF Int,
Primary Key (ID)) ENGINE = MyISAM;
arquivo index.php:
<!DOCTYPE html>
<?php
include_once("conexao.php");
?>
<html lang="pt-br">
<head>
<meta charset="utf-8">
<title>Teste - Novo Colaborador</title>
<style type="text/css">
/* ZERAR MARGENS */
* {
margin: 0;
padding: 0;
border: 0;
}
a {
text-decoration: none;
color: #000;
}
body {
background-color: rgb(244, 242, 243);
}
/* NOVO COLABORADOR */
.novo-colaborador {
width: 100%;
height: auto;
border: 1px solid #ccc;
}
.novo-colaborador table {
width: 100%;
}
/* TITILO DAS INFORMAÇÔES - class: titulo-info */
.titulo-info {
width: 100%;
height: 40px;
background-color: rgb(38, 134, 86);
margin: 0 auto;
}
.titulo-info h3 {
text-align: center;
font: bold 20px Calibri;
color: #eee;
line-height: 40px;
}
/* ICONE DE EXPANDIR/RECOLHER NO TITULO */
.icon-expandir {
width: 35px;
height: 35px;
margin-top: 2px;
background-color: rgb(38, 134, 86);
border-radius: 50%;
text-align: center;
font-size: 18px;
line-height: 37px;
position: absolute;
cursor: pointer;
color: #fff;
transition: .2s;
}
.icon-expandir:hover {
background-color: #fff;
color: rgb(38, 134, 86);
}
#btn-expandir-novo-colaborador:checked ~ .form-novo-colaborador {
display: none;
}
input[name="expandir-form-novo-colaborador"] {
display: none;
}
/* FORMULARIO PARA CADASTRAR NOVO COLABORADOR NO PORTAL */
.form-novo-colaborador {
width: 100%;
height: auto;
position: relative;
margin-top: 10px;
margin-bottom: 10px;
display: block;
}
.form-novo-colaborador h1 {
text-align: center;
color: #000;
font: bold 20px Calibri;
margin: 10px;
}
.form-novo-colaborador label {
color: #000;
font: bold 17px Calibri;
margin: 0px 0px 0px 50px;
}
.data-novo-colaborador {
color: #000;
font: normal 18px Calibri;
width: 216px;
height: 25px;
text-align: center;
text-transform: uppercase;
border-radius: 20px;
padding: 2px;
letter-spacing: 1px;
}
.nome-novo-colaborador {
color: #000;
font: normal 18px Calibri;
width: 400px;
height: 25px;
text-transform: uppercase;
border-radius: 20px;
padding: 2px 10px;
letter-spacing: 1px;
}
.funcao-novo-colaborador {
color: #000;
font: normal 18px Calibri;
width: 300px;
height: 25px;
text-transform: uppercase;
border-radius: 20px;
padding: 2px 10px;
letter-spacing: 1px;
}
.salvar-novo-colaborador {
width: 100px;
height: 35px;
padding: 5px;
margin-left: 30px;
border-radius: 20px;
cursor: pointer;
font: bold 18px Calibri;
transition: .2s;
color: rgb(38, 134, 86);
background-color: #fff;
}
.salvar-novo-colaborador:hover {
color: #fff;
background-color: rgb(38, 134, 86);
}
/* TABELA - NOVO COLABORADOR */
.novo-colaborador table {
width: 100%;
height: auto;
}
.novo-colaborador table th {
text-align: center;
font: bold 18px Calibri;
padding: 5px;
}
.novo-colaborador table tr td {
text-align: center;
font: normal 17px Calibri;
text-transform: uppercase;
border-top: 1px solid #ccc;
padding: 5px;
}
.novo-colaborador table tr:hover td {
color: #fff;
background-color: rgb(244, 123, 23);
}
.info-dias-novo-colaborador {
background-color: #fff;
font: normal 12px Calibri;
position: absolute;
margin-top: -22px;
margin-left: 20px;
padding: 5px;
border-radius: 20px;
display: none;
color: #000;
}
.btn-excluir {
color: rgb(244, 123, 23);
}
.icon-info {
color: #aaa;
font-size: 14px;
cursor: pointer;
}
.icon-info:hover .info-dias-novo-colaborador {
display: block;
}
.icon-confirmado-ativado {
color: green;
}
.icon-confirmado-desativado {
color: red;
}
.icon-atualizar {
color: #aaa;
font-size: 15px;
animation: rodar-atualizacao 1.5s infinite;
}
.novo-colaborador table tr:hover .btn-excluir {
color: #fff;
}
.novo-colaborador table tr:hover .icon-confirmado {
color: #fff;
}
.novo-colaborador table tr:hover .icon-atualizar {
color: #fff;
}
@keyframes rodar-atualizacao {
10% { transform: rotate(35deg);}
20% { transform: rotate(70deg);}
30% { transform: rotate(105deg);}
40% { transform: rotate(140deg);}
50% { transform: rotate(175deg);}
60% { transform: rotate(210deg);}
70% { transform: rotate(245deg);}
80% { transform: rotate(280deg);}
90% { transform: rotate(315deg);}
100% { transform: rotate(350deg);}
}
</style>
</head>
<body>
<!-- INICIO NOVO COLABORADOR -->
<div class="novo-colaborador" id="aparecer-novo-colaborador">
<input type="checkbox" name="expandir-form-novo-colaborador" id="btn-expandir-novo-colaborador" checked="">
<label for="btn-expandir-novo-colaborador">
<div class="icon-expandir" title="Clique para expandir/recolher">
<i>↕</i>
</div>
</label>
<div class="titulo-info">
<h3>Novo Colaborador</h3>
</div>
<div class="form-novo-colaborador">
<form method="POST" action="cadastrar.php">
<h1>Preencha as informações abaixo para cadastrar o novo colaborador.</h1>
<label for="data">Data:</label>
<input class="data-novo-colaborador" autocomplete="off" type="date" name="data" id="data" required>
<label for="nome">Nome:</label>
<input class="nome-novo-colaborador" autocomplete="off" type="text" name="nome" id="nome" required>
<label for="funcao">Função:</label>
<input class="funcao-novo-colaborador" autocomplete="off" type="text" name="funcao" id="funcao" required>
<button class="salvar-novo-colaborador" type="submit" id="salvar" name="salvar" title="Clique para salvar">Salvar</button>
</form>
</div>
<table cellspacing="0">
<tr>
<th width="2%"></th>
<th width="10%">Data</th>
<th width="40%">Nome do Colaborador</th>
<th width="20%">Função</th>
<th width="4%">15 Dias</th>
<th width="4%">30 Dias</th>
<th width="4%">45 Dias</th>
<th width="4%">60 Dias</th>
<th width="4%">75 Dias</th>
<th width="4%">90 Dias</th>
<th width="4%"></th>
</tr>
<?php
$sql = "SELECT * FROM novo_colaborador_portal ORDER BY id ASC";
$result = $conexao->query($sql);
while ($user_data = mysqli_fetch_assoc($result)) {
// pega as datas do banco e data atual e transforma em DIA-MES-ANO
$dataInput = date('d/m/Y', strtotime($user_data['data']));
$dataHoje = date('d/m/Y');
// transforma a data do formato BR para o formato americano, ANO-MES-DIA
$data1 = implode('-', array_reverse(explode('/', $dataInput)));
$data2 = implode('-', array_reverse(explode('/', $dataHoje)));
// converte as datas para o formato timestamp
$d1 = strtotime($data1);
$d2 = strtotime($data2);
// verifica a diferença em segundos entre as duas datas e divide pelo número de segundos que um dia possui
$dataFinal = ($d2 - $d1) / 86400;
$sql = "SELECT * FROM novo_colaborador_portal";
$sql_query = mysqli_query($con,$sql);
$acess = mysqli_fetch_all($sql_query,MYSQLI_ASSOC);
?>
<tr>
<td width="2%" class="icon-info">
<i class="fas fa-info"></i>
<span class="info-dias-novo-colaborador">O colaborador está conosco há <strong><?php echo $dataFinal ?> dias.</strong></span>
</td>
<td width="10%">
<?php echo date('d/m/Y', strtotime($user_data['data'])) ?>
</td>
<td width="40%">
<?php echo $user_data['nome'] ?>
</td>
<td width="20%">
<?php echo $user_data['funcao'] ?>
</td>
<td width="4%">
<?php
if ($dataFinal >= 15) {
if($user_data['diaA']=="1") {
echo "<a href=php_action/desativa_diaA.php?id=".$user_data['ID']." class='icon-confirmado-ativado'><i>♥</i></a>";
}
else {
echo "<a href=php_action/ativa_diaA.php?id=".$user_data['ID']." class='icon-confirmado-desativado'><i>♥</i></a>";
}
} else {
echo "<i class='icon-atualizar'>♠</i>";
}
?>
</td>
<td width="4%">
<?php
if ($dataFinal >= 30) {
if($user_data['diaB']=="1") {
echo "<a href=php_action/desativa_diaB.php?id=".$user_data['ID']." class='icon-confirmado-ativado'><i>♥</i></a>";
}
else {
echo "<a href=php_action/ativa_diaB.php?id=".$user_data['ID']." class='icon-confirmado-desativado'><i>♥</i></a>";
}
} else {
echo "<i class='icon-atualizar'>♠</i>";
}
?>
</td>
<td width="4%">
<?php
if ($dataFinal >= 45) {
if($user_data['diaC']=="1") {
echo "<a href=php_action/desativa_diaC.php?id=".$user_data['ID']." class='icon-confirmado-ativado'><i>♥</i></a>";
}
else {
echo "<a href=php_action/ativa_diaC.php?id=".$user_data['ID']." class='icon-confirmado-desativado'><i>♥</i></a>";
}
} else {
echo "<i class='icon-atualizar'>♠</i>";
}
?>
</td>
<td width="4%">
<?php
if ($dataFinal >= 60) {
if($user_data['diaD']=="1") {
echo "<a href=php_action/desativa_diaD.php?id=".$user_data['ID']." class='icon-confirmado-ativado'><i>♥</i></a>";
}
else {
echo "<a href=php_action/ativa_diaD.php?id=".$user_data['ID']." class='icon-confirmado-desativado'><i>♥</i></a>";
}
} else {
echo "<i class='icon-atualizar'>♠</i>";
}
?>
</td>
<td width="4%">
<?php
if ($dataFinal >= 75) {
if($user_data['diaE']=="1") {
echo "<a href=php_action/desativa_diaE.php?id=".$user_data['ID']." class='icon-confirmado-ativado'><i>♥</i></a>";
}
else {
echo "<a href=php_action/ativa_diaE.php?id=".$user_data['ID']." class='icon-confirmado-desativado'><i>♥</i></a>";
}
} else {
echo "<i class='icon-atualizar'>♠</i>";
}
?>
</td>
<td width="4%">
<?php
if ($dataFinal >= 90) {
if($user_data['diaF']=="1") {
echo "<a href=php_action/desativa_diaF.php?id=".$user_data['ID']." class='icon-confirmado-ativado'><i>♥</i></a>";
}
else {
echo "<a href=php_action/ativa_diaF.php?id=".$user_data['ID']." class='icon-confirmado-desativado'><i>♥</i></a>";
}
} else {
echo "<i class='icon-atualizar'>♠</i>";
}
?>
</td>
<td width="4%">
<?php echo "<a class='btn-excluir' href='excluir.php?id=$user_data[ID]' onclick='return confirm(`Deseja mesmo excluir este colaborador?`);' title='Clique para excluir o colaborador'>".'Excluir'."</a>" ?>
</td>
</tr>
<?php
}
?>
</table>
</div>
<!-- FIM NOVO COLABORADOR -->
</body>
</html>
arquivo cadastrar.php:
<?php
include_once("conexao.php");
if (isset($_POST['salvar'])) {
$data = ($_POST['data']);
$nome = ($_POST['nome']);
$funcao = ($_POST['funcao']);
$diaA = 0;
$diaB = 0;
$diaC = 0;
$diaD = 0;
$diaE = 0;
$diaF = 0;
$result = mysqli_query($conexao, "INSERT INTO novo_colaborador_portal(data, nome, funcao, diaA, diaB, diaC, diaD, diaE, diaF)
VALUES ('$data', '$nome', '$funcao', '$diaA', '$diaB', '$diaC', '$diaD', '$diaE', '$diaF')");
header('Location: index.php');
}
?>
arquivo ativa_diaA.php:
<?php
include_once("conexao.php");
if (isset($_GET['id'])){
$id=$_GET['id'];
$sql="UPDATE novo_colaborador_portal SET diaA=1 WHERE id=$id";
mysqli_query($conexao,$sql);
}
header("Location: ../index.php");
?>
arquivo desativa_diaA.php:
<?php
include_once("conexao.php");
if (isset($_GET['id'])){
$id=$_GET['id'];
$sql="UPDATE novo_colaborador_portal SET diaA=0 WHERE id=$id";
mysqli_query($conexao,$sql);
}
header("Location: ../index.php");
?>
Esse pequeno projeto é bem simples, o objetivo dele é ajudar o RH da empresa ao fazer um acompanhamento mais de perto com o colaborador novato, onde a cada 15 dias vai aparecer para o RH um ícone vermelho para informar que ele já chegou no dia do bate papo e ao realizar essa conversa/avaliação o próprio RH vai clicar no ícone vermelho que vai ficar verde.
Estou utilizando o font awesome como referência para ícones, por esse motivo retirei o link de lá e coloquei outros ícones simples do próprio Windows no arquivo só para visualização e entendimento.
A ideia inicial é fazer com que cada coluna diaA, diaB, diaC... Receba o valor 0 ao cadastrar o novo colaborador. No código tem duas condições, uma para a quantidade de dias, caso seja verdadeiro entra em outra condição para analisar o valor da coluna do banco, se o valor estiver 0 fica vermelho, se o valor estiver 1 fica verde, só isso. Porém o ícone ao ser clicado via href não atualiza o banco com o valor 1 .
Desde já agradeço toda ajuda recebida!