0
I am doing a project, where employees registered on the site (corporate), can register: Errors and Customers who had these errors (In case it is a support company).
I need PHP to do the Foreign Key of Clients and/or Employees, so it can be pulled by the view, which will be displayed on the query page. Regarding the database is mounted correctly, but do not know how to pull this data (as FK) in PHP.
Follows the code:
Bank script:
DROP DATABASE IF EXISTS mydb;
CREATE DATABASE IF NOT EXISTS mydb;
USE mydb;
CREATE TABLE clientes (
cod_clientes INT UNSIGNED NOT NULL AUTO_INCREMENT,
nome_cliente VARCHAR (50) NOT NULL,
cnpj VARCHAR (14) NOT NULL,
PRIMARY KEY (cod_clientes)
) ENGINE = innodb;
CREATE TABLE funcionarios (
cod_funcionarios INT UNSIGNED NOT NULL AUTO_INCREMENT,
login VARCHAR(15) NOT NULL,
email VARCHAR(50) NOT NULL,
senha VARCHAR(15) NOT NULL,
cpf VARCHAR (11) NOT NULL UNIQUE,
PRIMARY KEY (cod_funcionarios)
) ENGINE = innodb;
CREATE TABLE erros(
cod_erros INT UNSIGNED NOT NULL AUTO_INCREMENT,
tipo_erro VARCHAR (150) NOT NULL,
solucao TEXT NOT NULL,
data_ocorrencia DATE,
sistema VARCHAR (30) NOT NULL,
Fk_Funcionarios INT UNSIGNED,
Fk_Clientes INT UNSIGNED,
PRIMARY KEY (cod_erros),
FOREIGN KEY (Fk_Funcionarios) REFERENCES funcionarios (cod_funcionarios) ON UPDATE CASCADE ON DELETE RESTRICT,
FOREIGN KEY (Fk_Clientes) REFERENCES clientes (cod_clientes) ON UPDATE CASCADE ON DELETE RESTRICT
) ENGINE = innodb;
Insert script:
USE mydb;
insert into clientes (nome_cliente, cnpj) values
("maria", "99999999999998"),
("joao","99999999999997");
SELECT *FROM clientes;
insert into erros (tipo_erro, solucao, data_ocorrencia, sistema, Fk_Funcionarios, Fk_Clientes) values
("Erro na Instancia ", "1) Verificar se o NET Framework 4.6.2 está instalado na máquina e com seus recursos ativados. (Verifique os recursos indo em -> Painel de Controle > Programas e Recursos > Ativar ou Desativar Recursos do Windows > Em todos Net framework que estão lá - ative todos os recursos e reinicie a máquina).
2) Verificar se o IPV6 está desativado para evitar problemas de conexão.
3) Verificar se as regras de entrada no firewall estão habilitadas em 'propriedades do Windows defender firewall', e habilitar as portas para evitar problemas (1433, 9004, 9009), e habilitar as regras de entrada também. Ou desativar o firewall (não recomendado).
4) Verificar se o Anti-vírus está atrapalhando com a conexão do Hiper.
5) Verificar em serviços (Win+R e digite: 'services.msc' ou vá em pesquisar no menu iniciar e digite: 'serviços'.), e verifique se as instâncias como o: SQL SERVER (Hiper) está ‘iniciado’.
6) Verificar se o nome do 'desktop' e o do computador(logon / apelido da máquina) são iguais, pois se for, o SQL Server não irá aceitar fazer a conexão. Os nomes devem ser diferentes.
7) Agora abra o SSMS normalmente e faça o login com o SA sem por a senha, e depois configure.", "1888/08/25","HIPER", 1, 1),
("Falha de comunicação com o gestão", "Este erro é comum no Windows 7, devido as atualizações do Windows Update. Geralmente a atualização do Windows 7 não é automática como o do Windows 10. Então é necessário que faça a atualização do Windows Update.", "1888/08/25","HIPER",1, 2);
SELECT *FROM erros;
View:
DROP VIEW IF EXISTS VIEW_LISTA_ERROS;
CREATE VIEW VIEW_LISTA_ERROS AS
SELECT 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
FROM clientes, erros, funcionarios
where erros.Fk_Clientes = clientes.cod_clientes and erros.Fk_Funcionarios = funcionarios.cod_funcionarios
group by cod_erros, Fk_Clientes, Fk_Funcionarios;
select *from VIEW_LISTA_ERROS;
Part of php code where I am trying to insert (OBS: Without the Foreign Key it inserts in the database, but no use I insert without the FK, because otherwise the view will not pull and I will not have control):
//Caso não ocorra nenhum erro, permita que os dados sejam inseridos no banco.
if ($row == 0) {
$query2 = "insert into clientes(nome_cliente, cnpj)
values('{$nome_cliente}', '{$cnpj}')";
mysqli_query(conexao(), $query2);
$query = "insert into erros(tipo_erro,solucao,data_ocorrencia,sistema)
values('{$nome_erro}', ('{$solucao}'), ('{$data}'), '{$sistema}')";
mysqli_query(conexao(), $query);
}
header('location: paginaConsulta.php');
}
Form Print:
Print of the consultation page:
To summarize your question: you want to know how to insert customer and employee ids in foreign keys that will go to the error table?
– adrianosmateus
@adrianosmateus That! For example: I want to have registration of the employee who made the registration of errors and customers, and also what error the customer had. In case I will need the two Foreign Key (or primary key, I do not know how to implement)
– Vithor Carlos
Somebody give me a hand?
– Vithor Carlos