SlideShare une entreprise Scribd logo
1  sur  13
Télécharger pour lire hors ligne
PHP + MySQL: insert, update e delete
Carlos Santos
LabMM 4 - NTC - DeCA - UA
Aula 21, 15-05-2013
Inserção complexa
Como inserir um novo CD na seguinte BD?
Formulário de inserção
Possível estrutura para o formulário:
• campo de texto: título CD
• drop down menu: editora
• drop down menu: interprete
• drop down menu: classificação
E os estilos a associar ao CD?
• relação de muitos para muitos
• na introdução o utilizador pode querer introduzir vários estilos
Formulário de inserção
Possível estrutura para o formulário:
• campo de texto: título CD
• drop down menu: editora
• drop down menu: interprete
• drop down menu: classificação
• check boxes: estilos
Formulário de inserção (HTML)
drop down menus (select ... option)
• value = valor da chave primária (id) do elemento
• label text = descrição do elemento
check boxes
• <input type=”checkbox” name=”campo[ ]” value=”idvalue1” />label1
<input type=”checkbox” name=”campo[ ]” value=”idvalue2” />label2
• nos resultados do post:
• $_POST[“campo”] é um array com todos os valores selecionados nas
checkboxes do formulário
• mais info: http://www.html-form-guide.com/php-form/php-form-
checkbox.html
Na inserção em PHP
Para cada instrução só é possível inserir um registo e numa única tabela!
• Inserir novo registo na tabela “cd”
• “titulo”, “editora_id”, “interprete_id” e “classificacao_id”
• obter chave primária do novo CD e guardar!
• mysqli->insert_id; // chamar logo a seguir ao insert
• Para cada estilo escolhido:
• inserir um novo registo na tabela “cd_estilo”
• utilizar sempre o id do CD introduzido anteriormente e o id de cada
uma das checkboxes selecionadas pelo utilizador no formulário
Remover registos
A remoção de um registo não pode violar as regras de integridade
referencial da BD
• se adequado, substituir a remoção pela colocação do registo num estado
inativo (através dum campo booleano na tabela)
• é necessário adequar todas as queries para terem em conta o estado dos
registos (para os mostrar ou não…)
Remover registos
Remoção de registos com a passagem de parâmetro/valor na Query
String
• id do registo a remover (apagar_familia.php?id=3)
• confirmar previamente a remoção por JS (client-side) -> “Quer mesmo
apagar a família X?”
Para uma maior segurança na remoção de registos da BD
• verificar sempre se o utilizador possui as necessárias permissões -> perfis
utilizadores
• não expor na Query String o parâmetro/valor que possibilita a edição ->
variáveis sessão ($_SESSION[“parametro”] = valor)
• qual a diferença entre uma variável “normal” e uma variável de sessão?
Remover registos
apagar_familia.php?id=3
• verificar a passagem do parâmetro/valor na Query String
• validar se é possível apagar (existe alguma chave estrangeira que tenha
uma referência a este valor?)
• apagar o registo
• dar feedback ao utilizador sobre o sucesso (ou não) da remoção!!
$idFam = $_GET["id"];
//Validações!
$query = "DELETE FROM Familia WHERE idFamilia =".$idFam;
$rsFami = mysqli->query($query);
//Feedback final
Editar registos
Edição de registos com a passagem de parâmetro/valor na Query String
• id do registo a editar (editar_familia.php?id=5)
• o id é obtido através do URL que se constrói na interface de escolha para
edição
Para uma maior segurança na edição de registos da BD
• Verificar sempre se o utilizador possui as necessárias permissões -> perfis
utilizadores
• Não expor na Query String o parâmetro/valor que possibilita a edição ->
variáveis sessão
Editar registos
O que é que tem de mudar entre um formulário para adicionar um registo
e um formulário para editar um registo?
• num formulário para adicionar
• não há um campo para a chave primária porque esse valor não existe e
não é escolhido pelo utilizador (auto incremento)
• por defeito, os campos devem estar vazios
• num formulário para editar
• o valor da chave primária é essencial para atualizar o registo correto na
BD!
• pode optar-se por ter um campo do tipo hidden no formulário para
armazenar o valor da chave primária
• os campos devem aparecer pré-preenchidos com os valores atuais do
registo
Formulário
Passos para construir um formulário de edição:
• construir um recordset com os valores do registo em edição
• adicionar todos os elementos como no formulário de inserção (drop down
menus)
• inicializar todos os campos com os valores do registo em edição
• adicionar um hidden field com o valor da chave primária do registo
$query = "UPDATE tabela
SET campo1 = "valor1", campo2 = valor2
WHERE chavePrimária = valorChavePrimária;;
$rsUpdate = mysqli->query($query);
Inserções em múltiplas tabelas
No formulário para adicionar um CD queremos permitir escolher um
interprete já existente ou adicionar um novo
• no formulário:
manter o drop down para escolher um interprete
adicionar um campo de texto para indicar um novo interprete
• no script de inserção
verificar se foi introduzido algo no campo do novo interprete
se foi -> verificar se esse interprete já existe na BD
se existir -> usar o ID (PK) do interprete já existente
se não existir -> inserir novo interprete na tabela “interprete”
obter o ID (PK) dessa inserção
se não foi -> utilizar a opção selecionada no dropdown menu
inserir o novo CD na tabela “cd”

Contenu connexe

Tendances

Curso de PostgreSQL: Um pouco Além dos Comandos
Curso de PostgreSQL: Um pouco Além dos ComandosCurso de PostgreSQL: Um pouco Além dos Comandos
Curso de PostgreSQL: Um pouco Além dos ComandosMarcos Thomaz
 
Aula 05 banco de dados em asp.net (site do administrador - alterar e excluir)
Aula 05   banco de dados em asp.net (site do administrador - alterar e excluir)Aula 05   banco de dados em asp.net (site do administrador - alterar e excluir)
Aula 05 banco de dados em asp.net (site do administrador - alterar e excluir)Gabriel Bugano
 
Criando um banco de dados com MySQL Workbench
Criando um banco de dados com MySQL WorkbenchCriando um banco de dados com MySQL Workbench
Criando um banco de dados com MySQL WorkbenchCentro Paula Souza
 
Etec ai -32- teclas de atalho
Etec   ai -32- teclas de atalhoEtec   ai -32- teclas de atalho
Etec ai -32- teclas de atalhoNutsha De luca
 
Formulários para Plone: um passeio pelo framework z3c.form
Formulários para Plone: um passeio pelo framework z3c.formFormulários para Plone: um passeio pelo framework z3c.form
Formulários para Plone: um passeio pelo framework z3c.formRuda Filgueiras
 

Tendances (14)

Teclas de-atalho-access
Teclas de-atalho-accessTeclas de-atalho-access
Teclas de-atalho-access
 
Principais atalhos do windows
Principais atalhos do windowsPrincipais atalhos do windows
Principais atalhos do windows
 
Aula 250309
Aula 250309Aula 250309
Aula 250309
 
Teclas de atalho
Teclas de atalho Teclas de atalho
Teclas de atalho
 
Teclas de atalho para o microsoft word
Teclas de atalho para o microsoft wordTeclas de atalho para o microsoft word
Teclas de atalho para o microsoft word
 
Atalhos de teclado
Atalhos de tecladoAtalhos de teclado
Atalhos de teclado
 
Teclas de atalho
Teclas de atalhoTeclas de atalho
Teclas de atalho
 
Workshop totvs report
Workshop totvs reportWorkshop totvs report
Workshop totvs report
 
Curso de PostgreSQL: Um pouco Além dos Comandos
Curso de PostgreSQL: Um pouco Além dos ComandosCurso de PostgreSQL: Um pouco Além dos Comandos
Curso de PostgreSQL: Um pouco Além dos Comandos
 
Aula 05 banco de dados em asp.net (site do administrador - alterar e excluir)
Aula 05   banco de dados em asp.net (site do administrador - alterar e excluir)Aula 05   banco de dados em asp.net (site do administrador - alterar e excluir)
Aula 05 banco de dados em asp.net (site do administrador - alterar e excluir)
 
Criando um banco de dados com MySQL Workbench
Criando um banco de dados com MySQL WorkbenchCriando um banco de dados com MySQL Workbench
Criando um banco de dados com MySQL Workbench
 
Norato Framework
Norato FrameworkNorato Framework
Norato Framework
 
Etec ai -32- teclas de atalho
Etec   ai -32- teclas de atalhoEtec   ai -32- teclas de atalho
Etec ai -32- teclas de atalho
 
Formulários para Plone: um passeio pelo framework z3c.form
Formulários para Plone: um passeio pelo framework z3c.formFormulários para Plone: um passeio pelo framework z3c.form
Formulários para Plone: um passeio pelo framework z3c.form
 

Similaire à PHP MySQL insert update delete

(A06) LabMM3 - JavaScript
(A06) LabMM3 - JavaScript(A06) LabMM3 - JavaScript
(A06) LabMM3 - JavaScriptCarlos Santos
 
LabMM4 (T18 - 12/13) - Navegação e insert
LabMM4 (T18 - 12/13) - Navegação e insertLabMM4 (T18 - 12/13) - Navegação e insert
LabMM4 (T18 - 12/13) - Navegação e insertCarlos Santos
 
Banco de dados comandos sql
Banco de dados   comandos sqlBanco de dados   comandos sql
Banco de dados comandos sqlNilson Augustini
 
introduao-a-sql-prof-anderson-cavalcanti-ufrn-ct-dca.pptx
introduao-a-sql-prof-anderson-cavalcanti-ufrn-ct-dca.pptxintroduao-a-sql-prof-anderson-cavalcanti-ufrn-ct-dca.pptx
introduao-a-sql-prof-anderson-cavalcanti-ufrn-ct-dca.pptxSaraR49
 
Modulo-02-Aula-02-conteudo-de-certi.pptx
Modulo-02-Aula-02-conteudo-de-certi.pptxModulo-02-Aula-02-conteudo-de-certi.pptx
Modulo-02-Aula-02-conteudo-de-certi.pptxAugustoNicolau2
 
Produtividade com Eclipse IDE
Produtividade com Eclipse IDEProdutividade com Eclipse IDE
Produtividade com Eclipse IDEAnderson Silveira
 
LabMM4 (T22 - 12/13) - segurança
LabMM4 (T22 - 12/13) - segurançaLabMM4 (T22 - 12/13) - segurança
LabMM4 (T22 - 12/13) - segurançaCarlos Santos
 
Boas praticas em um Projeto de Banco de Dados
Boas praticas em um Projeto de Banco de DadosBoas praticas em um Projeto de Banco de Dados
Boas praticas em um Projeto de Banco de DadosJuliano Atanazio
 
Replicação Lógica no PostgreSQL 10
Replicação Lógica no PostgreSQL 10Replicação Lógica no PostgreSQL 10
Replicação Lógica no PostgreSQL 10Euler Taveira
 
Curso HTML 5 - Aula com Formulários, Imagens, Áudio e Vídeo
Curso HTML 5 - Aula com Formulários, Imagens, Áudio e VídeoCurso HTML 5 - Aula com Formulários, Imagens, Áudio e Vídeo
Curso HTML 5 - Aula com Formulários, Imagens, Áudio e VídeoTiago Antônio da Silva
 
T04_LM3: Javascript (2013-2014)
T04_LM3: Javascript (2013-2014)T04_LM3: Javascript (2013-2014)
T04_LM3: Javascript (2013-2014)Carlos Santos
 
Criação de log de ações através do banco - PostgreSQL
Criação de log de ações através do banco - PostgreSQLCriação de log de ações através do banco - PostgreSQL
Criação de log de ações através do banco - PostgreSQLMarcos Thomaz
 
Criação de log de ações através do banco
Criação de log de ações através do bancoCriação de log de ações através do banco
Criação de log de ações através do bancoMarcos Thomaz
 

Similaire à PHP MySQL insert update delete (20)

Html5 Aula 4
Html5 Aula 4Html5 Aula 4
Html5 Aula 4
 
07 sql - parte 01
07   sql - parte 0107   sql - parte 01
07 sql - parte 01
 
(A06) LabMM3 - JavaScript
(A06) LabMM3 - JavaScript(A06) LabMM3 - JavaScript
(A06) LabMM3 - JavaScript
 
LabMM4 (T18 - 12/13) - Navegação e insert
LabMM4 (T18 - 12/13) - Navegação e insertLabMM4 (T18 - 12/13) - Navegação e insert
LabMM4 (T18 - 12/13) - Navegação e insert
 
SQL.ppt
SQL.pptSQL.ppt
SQL.ppt
 
Otimizando a performance com in memory no sql 2016
Otimizando a performance com in memory no sql 2016Otimizando a performance com in memory no sql 2016
Otimizando a performance com in memory no sql 2016
 
PHP MySQL Aula 07
PHP MySQL Aula 07PHP MySQL Aula 07
PHP MySQL Aula 07
 
Banco de dados comandos sql
Banco de dados   comandos sqlBanco de dados   comandos sql
Banco de dados comandos sql
 
introduao-a-sql-prof-anderson-cavalcanti-ufrn-ct-dca.pptx
introduao-a-sql-prof-anderson-cavalcanti-ufrn-ct-dca.pptxintroduao-a-sql-prof-anderson-cavalcanti-ufrn-ct-dca.pptx
introduao-a-sql-prof-anderson-cavalcanti-ufrn-ct-dca.pptx
 
Modulo-02-Aula-02-conteudo-de-certi.pptx
Modulo-02-Aula-02-conteudo-de-certi.pptxModulo-02-Aula-02-conteudo-de-certi.pptx
Modulo-02-Aula-02-conteudo-de-certi.pptx
 
Produtividade com Eclipse IDE
Produtividade com Eclipse IDEProdutividade com Eclipse IDE
Produtividade com Eclipse IDE
 
LabMM4 (T22 - 12/13) - segurança
LabMM4 (T22 - 12/13) - segurançaLabMM4 (T22 - 12/13) - segurança
LabMM4 (T22 - 12/13) - segurança
 
Linguagem C - Estruturas
Linguagem C - EstruturasLinguagem C - Estruturas
Linguagem C - Estruturas
 
Boas praticas em um Projeto de Banco de Dados
Boas praticas em um Projeto de Banco de DadosBoas praticas em um Projeto de Banco de Dados
Boas praticas em um Projeto de Banco de Dados
 
Replicação Lógica no PostgreSQL 10
Replicação Lógica no PostgreSQL 10Replicação Lógica no PostgreSQL 10
Replicação Lógica no PostgreSQL 10
 
Curso HTML 5 - Aula com Formulários, Imagens, Áudio e Vídeo
Curso HTML 5 - Aula com Formulários, Imagens, Áudio e VídeoCurso HTML 5 - Aula com Formulários, Imagens, Áudio e Vídeo
Curso HTML 5 - Aula com Formulários, Imagens, Áudio e Vídeo
 
T04_LM3: Javascript (2013-2014)
T04_LM3: Javascript (2013-2014)T04_LM3: Javascript (2013-2014)
T04_LM3: Javascript (2013-2014)
 
Criação de log de ações através do banco - PostgreSQL
Criação de log de ações através do banco - PostgreSQLCriação de log de ações através do banco - PostgreSQL
Criação de log de ações através do banco - PostgreSQL
 
Criação de log de ações através do banco
Criação de log de ações através do bancoCriação de log de ações através do banco
Criação de log de ações através do banco
 
Agbd aula4 sql_ddl
Agbd aula4 sql_ddlAgbd aula4 sql_ddl
Agbd aula4 sql_ddl
 

Plus de Carlos Santos

Is AI the Spice of our future?
Is AI the Spice of our future?Is AI the Spice of our future?
Is AI the Spice of our future?Carlos Santos
 
Mentoria entre pares de estudantes para estudantes
Mentoria entre pares de estudantes para estudantesMentoria entre pares de estudantes para estudantes
Mentoria entre pares de estudantes para estudantesCarlos Santos
 
1º Encontro Científico TCEdu
1º Encontro Científico TCEdu1º Encontro Científico TCEdu
1º Encontro Científico TCEduCarlos Santos
 
Tecnologias da Comunicação em Educação 2018: Aula inicial
Tecnologias da Comunicação em Educação 2018: Aula inicialTecnologias da Comunicação em Educação 2018: Aula inicial
Tecnologias da Comunicação em Educação 2018: Aula inicialCarlos Santos
 
AVILA Crew - Uma experiência de tutoria (com jogos) de alunos para alunos
AVILA Crew - Uma experiência de tutoria (com jogos) de alunos para alunosAVILA Crew - Uma experiência de tutoria (com jogos) de alunos para alunos
AVILA Crew - Uma experiência de tutoria (com jogos) de alunos para alunosCarlos Santos
 
AVILA Crew – Uma experiência de tutoria de alunos para alunos
AVILA Crew – Uma experiência de tutoria de alunos para alunosAVILA Crew – Uma experiência de tutoria de alunos para alunos
AVILA Crew – Uma experiência de tutoria de alunos para alunosCarlos Santos
 
Mestrado em Comunicação Multimédia da Universidade de Aveiro - Sessão de acol...
Mestrado em Comunicação Multimédia da Universidade de Aveiro - Sessão de acol...Mestrado em Comunicação Multimédia da Universidade de Aveiro - Sessão de acol...
Mestrado em Comunicação Multimédia da Universidade de Aveiro - Sessão de acol...Carlos Santos
 
Tecnologias da Comunicação em Educação: trabalho prático
Tecnologias da Comunicação em Educação: trabalho práticoTecnologias da Comunicação em Educação: trabalho prático
Tecnologias da Comunicação em Educação: trabalho práticoCarlos Santos
 
Sessão de acolhimento do MCMM da Universidade de Aveiro (2016/2017)
Sessão de acolhimento do MCMM da Universidade de Aveiro (2016/2017)Sessão de acolhimento do MCMM da Universidade de Aveiro (2016/2017)
Sessão de acolhimento do MCMM da Universidade de Aveiro (2016/2017)Carlos Santos
 
SAPO Campus towards a
 Smart Learning Environment
SAPO Campus towards a
 Smart Learning EnvironmentSAPO Campus towards a
 Smart Learning Environment
SAPO Campus towards a
 Smart Learning EnvironmentCarlos Santos
 
Repensar a tecnologia em contexto educativo: o caso do SAPO Campus
Repensar a tecnologia em contexto educativo: o caso do SAPO CampusRepensar a tecnologia em contexto educativo: o caso do SAPO Campus
Repensar a tecnologia em contexto educativo: o caso do SAPO CampusCarlos Santos
 
A technological approach to Open and Social Learning: 
the SAPO Campus project
A technological approach to Open and Social Learning: 
the SAPO Campus projectA technological approach to Open and Social Learning: 
the SAPO Campus project
A technological approach to Open and Social Learning: 
the SAPO Campus projectCarlos Santos
 
SAPO Campus: Gamification em contexto educativo
SAPO Campus: Gamification em contexto educativoSAPO Campus: Gamification em contexto educativo
SAPO Campus: Gamification em contexto educativoCarlos Santos
 
Repensar a tecnologia em contextos educativos: o SAPO Campus no DeCA
Repensar a tecnologia em contextos educativos: o SAPO Campus no DeCARepensar a tecnologia em contextos educativos: o SAPO Campus no DeCA
Repensar a tecnologia em contextos educativos: o SAPO Campus no DeCACarlos Santos
 
T20_LM3: APIs e Scoreoid
T20_LM3: APIs e ScoreoidT20_LM3: APIs e Scoreoid
T20_LM3: APIs e ScoreoidCarlos Santos
 
T19_LM3: Projeto final e documentação de planificação
T19_LM3: Projeto final e documentação de planificaçãoT19_LM3: Projeto final e documentação de planificação
T19_LM3: Projeto final e documentação de planificaçãoCarlos Santos
 
T17_LM3: Erros/Debug (2013-2014)
T17_LM3: Erros/Debug (2013-2014)T17_LM3: Erros/Debug (2013-2014)
T17_LM3: Erros/Debug (2013-2014)Carlos Santos
 

Plus de Carlos Santos (20)

Is AI the Spice of our future?
Is AI the Spice of our future?Is AI the Spice of our future?
Is AI the Spice of our future?
 
Mentoria entre pares de estudantes para estudantes
Mentoria entre pares de estudantes para estudantesMentoria entre pares de estudantes para estudantes
Mentoria entre pares de estudantes para estudantes
 
1º Encontro Científico TCEdu
1º Encontro Científico TCEdu1º Encontro Científico TCEdu
1º Encontro Científico TCEdu
 
Tecnologias da Comunicação em Educação 2018: Aula inicial
Tecnologias da Comunicação em Educação 2018: Aula inicialTecnologias da Comunicação em Educação 2018: Aula inicial
Tecnologias da Comunicação em Educação 2018: Aula inicial
 
AVILA Crew - Uma experiência de tutoria (com jogos) de alunos para alunos
AVILA Crew - Uma experiência de tutoria (com jogos) de alunos para alunosAVILA Crew - Uma experiência de tutoria (com jogos) de alunos para alunos
AVILA Crew - Uma experiência de tutoria (com jogos) de alunos para alunos
 
AVILA Crew – Uma experiência de tutoria de alunos para alunos
AVILA Crew – Uma experiência de tutoria de alunos para alunosAVILA Crew – Uma experiência de tutoria de alunos para alunos
AVILA Crew – Uma experiência de tutoria de alunos para alunos
 
chmod 777 education
chmod 777 educationchmod 777 education
chmod 777 education
 
Mestrado em Comunicação Multimédia da Universidade de Aveiro - Sessão de acol...
Mestrado em Comunicação Multimédia da Universidade de Aveiro - Sessão de acol...Mestrado em Comunicação Multimédia da Universidade de Aveiro - Sessão de acol...
Mestrado em Comunicação Multimédia da Universidade de Aveiro - Sessão de acol...
 
Tecnologias da Comunicação em Educação: trabalho prático
Tecnologias da Comunicação em Educação: trabalho práticoTecnologias da Comunicação em Educação: trabalho prático
Tecnologias da Comunicação em Educação: trabalho prático
 
Sessão de acolhimento do MCMM da Universidade de Aveiro (2016/2017)
Sessão de acolhimento do MCMM da Universidade de Aveiro (2016/2017)Sessão de acolhimento do MCMM da Universidade de Aveiro (2016/2017)
Sessão de acolhimento do MCMM da Universidade de Aveiro (2016/2017)
 
chmod 777 education
chmod 777 educationchmod 777 education
chmod 777 education
 
SAPO Campus towards a
 Smart Learning Environment
SAPO Campus towards a
 Smart Learning EnvironmentSAPO Campus towards a
 Smart Learning Environment
SAPO Campus towards a
 Smart Learning Environment
 
Repensar a tecnologia em contexto educativo: o caso do SAPO Campus
Repensar a tecnologia em contexto educativo: o caso do SAPO CampusRepensar a tecnologia em contexto educativo: o caso do SAPO Campus
Repensar a tecnologia em contexto educativo: o caso do SAPO Campus
 
A technological approach to Open and Social Learning: 
the SAPO Campus project
A technological approach to Open and Social Learning: 
the SAPO Campus projectA technological approach to Open and Social Learning: 
the SAPO Campus project
A technological approach to Open and Social Learning: 
the SAPO Campus project
 
SAPO Campus: Gamification em contexto educativo
SAPO Campus: Gamification em contexto educativoSAPO Campus: Gamification em contexto educativo
SAPO Campus: Gamification em contexto educativo
 
Repensar a tecnologia em contextos educativos: o SAPO Campus no DeCA
Repensar a tecnologia em contextos educativos: o SAPO Campus no DeCARepensar a tecnologia em contextos educativos: o SAPO Campus no DeCA
Repensar a tecnologia em contextos educativos: o SAPO Campus no DeCA
 
T20_LM3: APIs e Scoreoid
T20_LM3: APIs e ScoreoidT20_LM3: APIs e Scoreoid
T20_LM3: APIs e Scoreoid
 
T19_LM3: Projeto final e documentação de planificação
T19_LM3: Projeto final e documentação de planificaçãoT19_LM3: Projeto final e documentação de planificação
T19_LM3: Projeto final e documentação de planificação
 
T18_LM3: Ajax
T18_LM3: AjaxT18_LM3: Ajax
T18_LM3: Ajax
 
T17_LM3: Erros/Debug (2013-2014)
T17_LM3: Erros/Debug (2013-2014)T17_LM3: Erros/Debug (2013-2014)
T17_LM3: Erros/Debug (2013-2014)
 

Dernier

A horta do Senhor Lobo que protege a sua horta.
A horta do Senhor Lobo que protege a sua horta.A horta do Senhor Lobo que protege a sua horta.
A horta do Senhor Lobo que protege a sua horta.silves15
 
ALMANANHE DE BRINCADEIRAS - 500 atividades escolares
ALMANANHE DE BRINCADEIRAS - 500 atividades escolaresALMANANHE DE BRINCADEIRAS - 500 atividades escolares
ALMANANHE DE BRINCADEIRAS - 500 atividades escolaresLilianPiola
 
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicasCenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicasRosalina Simão Nunes
 
A Arte de Escrever Poemas - Dia das Mães
A Arte de Escrever Poemas - Dia das MãesA Arte de Escrever Poemas - Dia das Mães
A Arte de Escrever Poemas - Dia das MãesMary Alvarenga
 
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptxSlides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptxLuizHenriquedeAlmeid6
 
Simulado 2 Etapa - 2024 Proximo Passo.pdf
Simulado 2 Etapa  - 2024 Proximo Passo.pdfSimulado 2 Etapa  - 2024 Proximo Passo.pdf
Simulado 2 Etapa - 2024 Proximo Passo.pdfEditoraEnovus
 
CRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASB
CRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASBCRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASB
CRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASBAline Santana
 
Recurso Casa das Ciências: Sistemas de Partículas
Recurso Casa das Ciências: Sistemas de PartículasRecurso Casa das Ciências: Sistemas de Partículas
Recurso Casa das Ciências: Sistemas de PartículasCasa Ciências
 
UFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdfUFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdfManuais Formação
 
Apresentação | Eleições Europeias 2024-2029
Apresentação | Eleições Europeias 2024-2029Apresentação | Eleições Europeias 2024-2029
Apresentação | Eleições Europeias 2024-2029Centro Jacques Delors
 
E agora?! Já não avalio as atitudes e valores?
E agora?! Já não avalio as atitudes e valores?E agora?! Já não avalio as atitudes e valores?
E agora?! Já não avalio as atitudes e valores?Rosalina Simão Nunes
 
trabalho wanda rocha ditadura
trabalho wanda rocha ditaduratrabalho wanda rocha ditadura
trabalho wanda rocha ditaduraAdryan Luiz
 
Bullying - Atividade com caça- palavras
Bullying   - Atividade com  caça- palavrasBullying   - Atividade com  caça- palavras
Bullying - Atividade com caça- palavrasMary Alvarenga
 
Governo Provisório Era Vargas 1930-1934 Brasil
Governo Provisório Era Vargas 1930-1934 BrasilGoverno Provisório Era Vargas 1930-1934 Brasil
Governo Provisório Era Vargas 1930-1934 Brasillucasp132400
 
ANTIGUIDADE CLÁSSICA - Grécia e Roma Antiga
ANTIGUIDADE CLÁSSICA - Grécia e Roma AntigaANTIGUIDADE CLÁSSICA - Grécia e Roma Antiga
ANTIGUIDADE CLÁSSICA - Grécia e Roma AntigaJúlio Sandes
 
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptx
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptxSlides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptx
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptxLuizHenriquedeAlmeid6
 
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptxATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptxOsnilReis1
 
COMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEM
COMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEMCOMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEM
COMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEMVanessaCavalcante37
 
Habilidades Motoras Básicas e Específicas
Habilidades Motoras Básicas e EspecíficasHabilidades Motoras Básicas e Específicas
Habilidades Motoras Básicas e EspecíficasCassio Meira Jr.
 

Dernier (20)

A horta do Senhor Lobo que protege a sua horta.
A horta do Senhor Lobo que protege a sua horta.A horta do Senhor Lobo que protege a sua horta.
A horta do Senhor Lobo que protege a sua horta.
 
ALMANANHE DE BRINCADEIRAS - 500 atividades escolares
ALMANANHE DE BRINCADEIRAS - 500 atividades escolaresALMANANHE DE BRINCADEIRAS - 500 atividades escolares
ALMANANHE DE BRINCADEIRAS - 500 atividades escolares
 
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicasCenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
 
A Arte de Escrever Poemas - Dia das Mães
A Arte de Escrever Poemas - Dia das MãesA Arte de Escrever Poemas - Dia das Mães
A Arte de Escrever Poemas - Dia das Mães
 
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptxSlides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
 
Simulado 2 Etapa - 2024 Proximo Passo.pdf
Simulado 2 Etapa  - 2024 Proximo Passo.pdfSimulado 2 Etapa  - 2024 Proximo Passo.pdf
Simulado 2 Etapa - 2024 Proximo Passo.pdf
 
CRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASB
CRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASBCRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASB
CRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASB
 
Recurso Casa das Ciências: Sistemas de Partículas
Recurso Casa das Ciências: Sistemas de PartículasRecurso Casa das Ciências: Sistemas de Partículas
Recurso Casa das Ciências: Sistemas de Partículas
 
UFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdfUFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdf
 
Apresentação | Eleições Europeias 2024-2029
Apresentação | Eleições Europeias 2024-2029Apresentação | Eleições Europeias 2024-2029
Apresentação | Eleições Europeias 2024-2029
 
E agora?! Já não avalio as atitudes e valores?
E agora?! Já não avalio as atitudes e valores?E agora?! Já não avalio as atitudes e valores?
E agora?! Já não avalio as atitudes e valores?
 
trabalho wanda rocha ditadura
trabalho wanda rocha ditaduratrabalho wanda rocha ditadura
trabalho wanda rocha ditadura
 
Bullying - Atividade com caça- palavras
Bullying   - Atividade com  caça- palavrasBullying   - Atividade com  caça- palavras
Bullying - Atividade com caça- palavras
 
CINEMATICA DE LOS MATERIALES Y PARTICULA
CINEMATICA DE LOS MATERIALES Y PARTICULACINEMATICA DE LOS MATERIALES Y PARTICULA
CINEMATICA DE LOS MATERIALES Y PARTICULA
 
Governo Provisório Era Vargas 1930-1934 Brasil
Governo Provisório Era Vargas 1930-1934 BrasilGoverno Provisório Era Vargas 1930-1934 Brasil
Governo Provisório Era Vargas 1930-1934 Brasil
 
ANTIGUIDADE CLÁSSICA - Grécia e Roma Antiga
ANTIGUIDADE CLÁSSICA - Grécia e Roma AntigaANTIGUIDADE CLÁSSICA - Grécia e Roma Antiga
ANTIGUIDADE CLÁSSICA - Grécia e Roma Antiga
 
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptx
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptxSlides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptx
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptx
 
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptxATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
 
COMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEM
COMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEMCOMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEM
COMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEM
 
Habilidades Motoras Básicas e Específicas
Habilidades Motoras Básicas e EspecíficasHabilidades Motoras Básicas e Específicas
Habilidades Motoras Básicas e Específicas
 

PHP MySQL insert update delete

  • 1. PHP + MySQL: insert, update e delete Carlos Santos LabMM 4 - NTC - DeCA - UA Aula 21, 15-05-2013
  • 2. Inserção complexa Como inserir um novo CD na seguinte BD?
  • 3. Formulário de inserção Possível estrutura para o formulário: • campo de texto: título CD • drop down menu: editora • drop down menu: interprete • drop down menu: classificação E os estilos a associar ao CD? • relação de muitos para muitos • na introdução o utilizador pode querer introduzir vários estilos
  • 4. Formulário de inserção Possível estrutura para o formulário: • campo de texto: título CD • drop down menu: editora • drop down menu: interprete • drop down menu: classificação • check boxes: estilos
  • 5. Formulário de inserção (HTML) drop down menus (select ... option) • value = valor da chave primária (id) do elemento • label text = descrição do elemento check boxes • <input type=”checkbox” name=”campo[ ]” value=”idvalue1” />label1 <input type=”checkbox” name=”campo[ ]” value=”idvalue2” />label2 • nos resultados do post: • $_POST[“campo”] é um array com todos os valores selecionados nas checkboxes do formulário • mais info: http://www.html-form-guide.com/php-form/php-form- checkbox.html
  • 6. Na inserção em PHP Para cada instrução só é possível inserir um registo e numa única tabela! • Inserir novo registo na tabela “cd” • “titulo”, “editora_id”, “interprete_id” e “classificacao_id” • obter chave primária do novo CD e guardar! • mysqli->insert_id; // chamar logo a seguir ao insert • Para cada estilo escolhido: • inserir um novo registo na tabela “cd_estilo” • utilizar sempre o id do CD introduzido anteriormente e o id de cada uma das checkboxes selecionadas pelo utilizador no formulário
  • 7. Remover registos A remoção de um registo não pode violar as regras de integridade referencial da BD • se adequado, substituir a remoção pela colocação do registo num estado inativo (através dum campo booleano na tabela) • é necessário adequar todas as queries para terem em conta o estado dos registos (para os mostrar ou não…)
  • 8. Remover registos Remoção de registos com a passagem de parâmetro/valor na Query String • id do registo a remover (apagar_familia.php?id=3) • confirmar previamente a remoção por JS (client-side) -> “Quer mesmo apagar a família X?” Para uma maior segurança na remoção de registos da BD • verificar sempre se o utilizador possui as necessárias permissões -> perfis utilizadores • não expor na Query String o parâmetro/valor que possibilita a edição -> variáveis sessão ($_SESSION[“parametro”] = valor) • qual a diferença entre uma variável “normal” e uma variável de sessão?
  • 9. Remover registos apagar_familia.php?id=3 • verificar a passagem do parâmetro/valor na Query String • validar se é possível apagar (existe alguma chave estrangeira que tenha uma referência a este valor?) • apagar o registo • dar feedback ao utilizador sobre o sucesso (ou não) da remoção!! $idFam = $_GET["id"]; //Validações! $query = "DELETE FROM Familia WHERE idFamilia =".$idFam; $rsFami = mysqli->query($query); //Feedback final
  • 10. Editar registos Edição de registos com a passagem de parâmetro/valor na Query String • id do registo a editar (editar_familia.php?id=5) • o id é obtido através do URL que se constrói na interface de escolha para edição Para uma maior segurança na edição de registos da BD • Verificar sempre se o utilizador possui as necessárias permissões -> perfis utilizadores • Não expor na Query String o parâmetro/valor que possibilita a edição -> variáveis sessão
  • 11. Editar registos O que é que tem de mudar entre um formulário para adicionar um registo e um formulário para editar um registo? • num formulário para adicionar • não há um campo para a chave primária porque esse valor não existe e não é escolhido pelo utilizador (auto incremento) • por defeito, os campos devem estar vazios • num formulário para editar • o valor da chave primária é essencial para atualizar o registo correto na BD! • pode optar-se por ter um campo do tipo hidden no formulário para armazenar o valor da chave primária • os campos devem aparecer pré-preenchidos com os valores atuais do registo
  • 12. Formulário Passos para construir um formulário de edição: • construir um recordset com os valores do registo em edição • adicionar todos os elementos como no formulário de inserção (drop down menus) • inicializar todos os campos com os valores do registo em edição • adicionar um hidden field com o valor da chave primária do registo $query = "UPDATE tabela SET campo1 = "valor1", campo2 = valor2 WHERE chavePrimária = valorChavePrimária;; $rsUpdate = mysqli->query($query);
  • 13. Inserções em múltiplas tabelas No formulário para adicionar um CD queremos permitir escolher um interprete já existente ou adicionar um novo • no formulário: manter o drop down para escolher um interprete adicionar um campo de texto para indicar um novo interprete • no script de inserção verificar se foi introduzido algo no campo do novo interprete se foi -> verificar se esse interprete já existe na BD se existir -> usar o ID (PK) do interprete já existente se não existir -> inserir novo interprete na tabela “interprete” obter o ID (PK) dessa inserção se não foi -> utilizar a opção selecionada no dropdown menu inserir o novo CD na tabela “cd”