· 6 years ago · Jul 16, 2019, 06:16 PM
1DROP DATABASE IF EXISTS mydb;
2CREATE DATABASE IF NOT EXISTS mydb;
3
4USE mydb;
5
6CREATE TABLE clientes (
7 cod_clientes INT UNSIGNED NOT NULL AUTO_INCREMENT,
8 nome_cliente VARCHAR (50) NOT NULL,
9 cnpj VARCHAR (14) NOT NULL,
10 PRIMARY KEY (cod_clientes)
11) ENGINE = innodb;
12
13CREATE TABLE funcionarios (
14 cod_funcionarios INT UNSIGNED NOT NULL AUTO_INCREMENT,
15 nome_funcionario VARCHAR (100) NOT NULL,
16 login VARCHAR(15) NOT NULL,
17 email VARCHAR(80) NOT NULL UNIQUE,
18 senha VARCHAR(15) NOT NULL,
19 PRIMARY KEY (cod_funcionarios)
20 ) ENGINE = innodb;
21
22CREATE TABLE erros(
23 cod_erros INT UNSIGNED NOT NULL AUTO_INCREMENT,
24 tipo_erro VARCHAR (150) NOT NULL UNIQUE,
25 solucao TEXT NOT NULL,
26 data_ocorrencia DATE,
27 sistema VARCHAR (30) NOT NULL,
28 Fk_Funcionarios INT UNSIGNED,
29 Fk_Clientes INT UNSIGNED,
30 PRIMARY KEY (cod_erros),
31 FOREIGN KEY (Fk_Funcionarios) REFERENCES funcionarios (cod_funcionarios) ON UPDATE CASCADE ON DELETE RESTRICT,
32 FOREIGN KEY (Fk_Clientes) REFERENCES clientes (cod_clientes) ON UPDATE CASCADE ON DELETE RESTRICT
33 ) ENGINE = innodb;
34
35DROP VIEW IF EXISTS VIEW_LISTA_ERROS;
36
37CREATE VIEW VIEW_LISTA_ERROS AS
38SELECT clientes.nome_cliente AS Cliente, erros.cod_erros AS ID, erros.tipo_erro AS Erro, erros.solucao AS Solução, erros.data_ocorrencia AS Data, erros.sistema AS Sistema, funcionarios.email AS Email_do_Funcionario
39FROM clientes, erros, funcionarios
40where erros.Fk_Clientes = clientes.cod_clientes and erros.Fk_Funcionarios = funcionarios.cod_funcionarios
41group by cod_erros, Fk_Clientes, Fk_Funcionarios;
42
43select *from VIEW_LISTA_ERROS;
44
45//Caso não ocorra nenhum erro, permita que os dados sejam inseridos no banco.
46 if ($row == 0) {
47 $link = conexao();
48
49 $query = "insert into clientes(nome_cliente, cnpj)
50 values('{$nome_cliente}', '{$cnpj}')";
51 $result = mysqli_query($link, $query);
52
53 //Recupero o id do cliente que acabou de ser inserido
54 $idCliente = mysqli_insert_id($link);
55
56 //Recupero o id do funcionaio que está logado na sessão
57 $idFuncionario = $_SESSION["id_usuario"];
58
59 $query2 = "insert into erros(tipo_erro,solucao,data_ocorrencia,sistema, Fk_Funcionarios, Fk_Clientes)
60 values('{$nome_erro}', '{$solucao}', '{$data}', '{$sistema}', '{$idFuncionario}', '{$idCliente}')";
61 $result2 = mysqli_query($link, $query2);
62
63 header('location: paginaConsulta.php');
64 }
65
66<?php
67 $link = conexao();
68 $query = $link->prepare('select Cliente, Erro, Solução, Data, Sistema from VIEW_LISTA_ERROS');
69 $query->execute();
70 $query->bind_result($cliente, $erro, $solucao, $data, $sistema);
71
72 echo "
73 <!--Cabeçalho-->
74 <div class='row header'>
75 <div class='cell'>
76 CLIENTE
77 </div>
78 <div class='cell'>
79 ERRO
80 </div>
81 <div class='cell'>
82 SOLUÇÃO
83 </div>
84 <div class='cell'>
85 DATA
86 </div>
87 <div class='cell'>
88 SISTEMA
89 </div>
90 <div class='cell'>
91 <i class='fas fa-tools'></i>
92 </div>
93 </div>
94 ";
95
96 while ($query->fetch()) {
97 echo "
98 <div class='row'>
99 <div class='cell cell2' data-title='Clientes'>
100 $cliente
101 </div>
102 <div class='cell cell2' data-title='Erro'>
103 $erro
104 </div>";
105
106 echo "
107 <div class='cell cell2' data-title=Solução style='vertical-align:middle; text-align: justify;'> ";
108 echo nl2br("$solucao");
109 echo "</div>";
110
111 echo"
112 <div class='cell cell2' data-title='Data'>";
113 $data = formatarData($data);
114 echo "$data";
115 echo"
116 </div>
117 <div class='cell cell2' data-title='Sistema'>
118 $sistema
119 </div>
120 <div class='cell cell2' data-title='Sistema'>
121 <a href=''><i class='fas fa-edit'></i></a>
122 </div>
123 </div>
124 ";
125 }
126 echo "
127 <!--Final Conteúdo-->
128 </div>
129 </div>
130</div>