A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Engº Pedro CostaAcessibilidade e Programação Web 1 Workshop Comunicação Inclusiva Acessibilidade e Programação Web Mysql.

Apresentações semelhantes


Apresentação em tema: "Engº Pedro CostaAcessibilidade e Programação Web 1 Workshop Comunicação Inclusiva Acessibilidade e Programação Web Mysql."— Transcrição da apresentação:

1 Engº Pedro CostaAcessibilidade e Programação Web 1 Workshop Comunicação Inclusiva Acessibilidade e Programação Web Mysql

2 Engº Pedro CostaAcessibilidade e Programação Web 2 Base de Dados Uma base de dados é a melhor forma de guardar informação de modo organizado e de fácil visualização. Uma base de dados é composta por tabelas, que são compostas por campos. Esses é que contêm a informação e podem ser de qualquer tipo: numérico (inteiros ou reais), texto, data, booleano, etc.. NomeLocalidadeTelefoneData de Nascimento PedroPorto22454455512-07-78 SusanaBraga96786566628-09-80 JoãoCoimbra91234458822-04-76 Esta tabela tem 4 campos ( Nome,Localidade,Telefone, Data de nascimento)

3 Engº Pedro CostaAcessibilidade e Programação Web 3 Base dados Para a construção das tabelas temos de seguir certas regras: Exemplo da construção de uma base de dados Construir uma base dados para um concurso de perguntas tipo quem quer ser milionário, ou seja, cada pergunta tem quatro possíveis respostas. E queremos guardar a informação dos concorrentes. 1º Passo – Fazer uma lista de toda a informação que se pretende guardar. Pergunta, RespostaA, RespostaB, RespostaC, RespostaD, Resposta Certa, Categoria da resposta. Nome do concorrente, Localidade, data de nascimento, pontuação, resposta dada a determinada pergunta.

4 Engº Pedro CostaAcessibilidade e Programação Web 4 Base de dados 2º passo – por em tabelas a informação apurada PerguntaResposta A Resposta B Resposta C Resposta D Resposta Certa Categoria Quem ganhou o oscar de melhor filme 2008 AtonementMichael Clayton No Country for Old Men There Will be Blood No Country for Old Men Espectaculo Quem ganhou o oscar de melhor actor 2008 George Clooney Daniel Day- Lewis Johnny Depp Tommy Lee Jones Daniel Day-Lewis Espectaculo Quem ganhou o oscar de melhor actriz 2008 Cate Blanchett Julie ChristieLaura Linney Marion Cotillard Espectaculo

5 Engº Pedro CostaAcessibilidade e Programação Web 5 Base de dados 2º passo (continuação )– por em tabelas a informação apurada NomeLocalidadeTelefoneData de Nascimento Pontuação PedroPorto22454455512-07-7810 TeresaPorto22454455512-07-7812 SusanaBraga96786566628-09-8020 JoãoPorto91234458822-04-765

6 Engº Pedro CostaAcessibilidade e Programação Web 6 Base de dados 3º passo – aplicação de algumas regras de modo a simplificar 1º Regra – As tabelas devem de ter um ou mais campos cujos os valores sejam únicos (passamos a chamar de chaves da tabela ) Na tabela Pergunta, temos que o campo pergunta é único ou seja não existem perguntas repetidas. As chaves devem de ser preferencialmente numéricas porque assim precisamos de menos espaço para identificar uma linha. Perguntar pela pergunta número 3 ocupa menor espaço do que perguntar pela pergunta Quem ganhou o Óscar de melhor actriz 2008 Assim criamos um novo campo chamado IDpergunta que vai ser um número inteiro.

7 Engº Pedro CostaAcessibilidade e Programação Web 7 Base de dados IDperguntaPerguntaResposta A Resposta B Resposta C Resposta D Resposta Certa Categoria 1 Quem ganhou o Óscar de melhor filme 2008 AtonementMichael Clayton No Country for Old Men There Will be Blood No Country for Old Men Espectáculo 2 Quem ganhou o Óscar de melhor actor 2008 George Clooney Daniel Day- Lewis Johnny Depp Tommy Lee Jones Daniel Day-Lewis Espectáculo 3 Quem ganhou o Óscar de melhor actriz 2008 Cate Blanchett Julie ChristieLaura Linney Marion Cotillard Espectáculo

8 Engº Pedro CostaAcessibilidade e Programação Web 8 Base de dados Fazemos o mesmo para a tabela Concorrente- passamos a ter um campo chamado idconcorrente que identifica o concorrente e é único IDconcorre nte NomeLocalidadeTelefoneData de Nascimento Pontuação 1PedroPorto22454455512-07-7810 2TeresaPorto22422455522-01-7112 3SusanaBraga96786566628-09-8020 4JoãoPorto91234458822-04-765

9 Engº Pedro CostaAcessibilidade e Programação Web 9 Base de dados 2º Regra – Se numa tabelas tivermos um campo cujos os valores se repetem muitas vezes, o melhor é criar uma nova tabela. Na tabela Pergunta, temos que o campo categoria vai ter valores repetidos por isso podemos criar uma tabela nova chamada categoria. IDcategoriaDesignaçãoDescrição 1EspectáculoCinema, Musica, Pintura, etc. 2DesportoTodos os desportos 3CiênciaMatemática, Fisica, Engenharia

10 Engº Pedro CostaAcessibilidade e Programação Web 10 Base de dados IDperguntaPerguntaResposta A Resposta B Resposta C Resposta D Resposta Certa IDcategoria 1 Quem ganhou o Óscar de melhor filme 2008 AtonementMichael Clayton No Country for Old Men There Will be Blood No Country for Old Men 1 2 Quem ganhou o Óscar de melhor actor 2008 George Clooney Daniel Day- Lewis Johnny Depp Tommy Lee Jones Daniel Day-Lewis 1 3 Quem ganhou o Óscar de melhor actriz 2008 Cate Blanchett Julie ChristieLaura Linney Marion Cotillard 1

11 Engº Pedro CostaAcessibilidade e Programação Web 11 Base de Dados Falta a informação relacionada com as respostas dadas pelos concorrentes. Para guardar essa informação cria-se uma tabela que tem a identificação do concorrente, a identificação da pergunta, a resposta dada e qual era o numero da pergunta. IDconcorrenteIDperguntaRespostaNumero 12 Johnny Depp 1 11 Atonement 2 21 Tommy Lee Jones 1 Nesta tabela não existe um campo que tenha valores únicos, temos é dois campos cujos os valores são únicos. Que são o IDconcorrente e o IDpergunta que vão ser chave. Por exemplo não pode existir mais nenhuma linha a não ser a primeira que tenha IDconcorrente =1 e IDpergunta=2. A pergunta não pode ser perguntada duas vezes.

12 Engº Pedro CostaAcessibilidade e Programação Web 12 Phpmyadmin No endereço phpmyadmin.icicom.up.pt podemos criar a base de dados no Mysql. No Mysql se não formos administradores não podemos criar base de dados, por isso a base de dados já está criada. Temos de criar as tabelas e os seus campos com os respectivos tipos de valores e dizer quais os campos que são chave. Em seguida podemos inserir alguns valores.

13 Engº Pedro CostaAcessibilidade e Programação Web 13 SQL A linguagem SQL serve para conseguirmos extrair, inserir, editar e apagar informação das base de dados. Vamos começar pelas duas principais funções Select – mostra os campos pretendidos From – escolhe a tabela ou tabelas Select concorrente.nome from concorrente Estamos a pedir todos os nomes que existem na tabela concorrentes Nome Pedro Teresa Susana João

14 Engº Pedro CostaAcessibilidade e Programação Web 14 SQL Pergunta Quem ganhou o Óscar de melhor filme 2008 Quem ganhou o Óscar de melhor actor 2008 Quem ganhou o Óscar de melhor actriz 2008 Todas as perguntas que existem ? Todas as categorias que existem ? Select pergunta.pergunta from pergunta Select categoria.designação from categoria Designação Espectáculo Desporto Ciência

15 Engº Pedro CostaAcessibilidade e Programação Web 15 SQL Nome Pedro Teresa João Quais são os nomes dos concorrentes do porto ? Qual é a data de nascimento e localidade da concorrente Susana ? Select concorrente.nome from concorrente Where concorrente.localidade=Porto; Quando queremos por restrições usamos a função - Where Select concorrente.localidade, concorrente.[data de nascimento] from concorrentes Where concorrentes.nome=Susana; Braga28-09-80

16 Engº Pedro CostaAcessibilidade e Programação Web 16 SQL Nome Teresa João Quais são os nomes dos concorrentes com pontuação maior que 10 ? Quem tem este telefone 224544555 ? Select concorrente.nome from concorrente Where concorrente.pontuação>10; Select * from concorrentes Where concorrentes.telefone=224544555; 1PedroPorto22454455512-07-7810 Se usarmos * após o select estamos a dizer que queremos todos os campos

17 Engº Pedro CostaAcessibilidade e Programação Web 17 SQL Quantos concorrentes são do porto ? 3 Também podemos usar algumas funções dentro do select para Count – contar Max – ver o máximo Sum – somar Min – ver o mínimo Select count(concorrente.nome) from concorrente Where concorrente.localidade=Porto;

18 Engº Pedro CostaAcessibilidade e Programação Web 18 SQL De que categoria são as perguntas as duas primeiras perguntas ? 3 Quando queremos usar informação de duas tabelas ligamos essas tabelas através dos campos que fazem essa ligação Select pergunta.pergunta,categoria.designação from pergunta, categoria Where (pergunta.idcategoria=categoria.idcategoria) and (pergunta.idpergunta<3); É o que faz a ligação Pergunta menor que três é a 1 e 2

19 Engº Pedro CostaAcessibilidade e Programação Web 19 SQL Queremos saber quantas pessoas existem de cada localidade ? Quando queremos agrupar a informação por valores usamos o group by Select concorrente.localidade, count(concorrente.localidade), from concorrente Group by concorrente.localidade LocalidadeCount(localidade) Porto3 Braga1

20 Engº Pedro CostaAcessibilidade e Programação Web 20 SQL Para inserir informação usando o sql temos- INSERT Insert INTO pergunta (idpergunta,respostaA, respostaB, respostaC, respostaD, resposta,categoria) values(4,Quantos oscar ganhou Atonement,1,0,2,3,1,1); Inserir na tabela pergunta Inserir na tabela categoria Insert INTO categoria(idcategoria,designação,descrição) values (4,Politica,Nacional e Inernacional); Para apagar temos - DELETE delete from concorrente where idconcorrente=4;

21 Engº Pedro CostaAcessibilidade e Programação Web 21 SQL Quando queremos modificar alguma linha usamos - UPDATE UPDATE concorrente set localidade=Aveiro, Telefone=228987464 where idconcorrente=2; A seguir a set pomos os valores dos campos que queremos alterar

22 Engº Pedro CostaAcessibilidade e Programação Web 22 Conectar A primeira função a usar é a função mysql_connect para ligarmo-nos ao servidor que tem a base de dados mysql_connect(nome_do_servidor,user,password); <?php $con = mysql_connect("localhost","pedro",12345"); if (!$con) { die(Não se consegue ligar à base de dados. mysql_error()); } ?> Quando estamos a utilizar o nosso computador, ou seja, as nossas páginas não estão na net. O nome do servidor é localhost. Neste exemplo usamos a função die que aborta a página e mostra uma mensagem. Neste caso se não conseguimos ligar à base de dados, não precisamos de continuar.

23 Engº Pedro CostaAcessibilidade e Programação Web 23 Mysql A segunda função é ligarmo-nos à nossa base de dados mysql_select_db(nome_da_base_de_dados,coneção); Em seguida vamos fazer uma pergunta à base de dados para termos a informação pretendida $resultado_da_query=mysql_query(pergunta_em_sql); O resultado é uma tabela com varias linhas. Para percorremos essas linhas usamos a seguinte função. $linha = mysql_fetch_array($resultado_da_query) Para ler campo da linha usamos o seguinte: $linha[nome_do_campo]

24 Engº Pedro CostaAcessibilidade e Programação Web 24 Exemplo <?php $con = mysql_connect("localhost","pedro",12345"); if (!$con) { die(Não se consegue ligar à base de dados. mysql_error()); } mysql_select_db(concurso", $con); $resultado = mysql_query("SELECT * FROM concorrente"); while($linha = mysql_fetch_array($resultado)) { echo $row[Nome']. " ". $row['Localidade']; echo " "; } ?>

25 Engº Pedro CostaAcessibilidade e Programação Web 25 Exercício Criar pequeno site a simular o concurso, em vamos as seguintes páginas: –Lista de todas as perguntas. –Lista de todos os concorrentes. –Lista de todas as categorias. –Inserir novas perguntas –Inserir novos concorrentes. –Inserir novas categorias. –Escolher o concorrente para jogar. –O concorrente responde as perguntas –Dizer se a pergunta está correcta ou não e a pontuação actual. –Pontuação final do concorrente –Ranking da pontuação


Carregar ppt "Engº Pedro CostaAcessibilidade e Programação Web 1 Workshop Comunicação Inclusiva Acessibilidade e Programação Web Mysql."

Apresentações semelhantes


Anúncios Google