Programação Web

SQL - "Base de dados"

Links e Ferramentas

Links e ferramentas para produção de conteúdos web.
Editores: Atom Free || SublimeText || NotePad++ Free 
Editor gráfico: Kompozer
Ftp: FileZilla Free

HTML - "Conteúdo"

Html e Html5 -  Hypertext Markup Language, sistema padronizado para formatação de ficheiros de texto para obter efeitos de fontes, cores, gráficos e hiperlinks nas páginas da World Wide Web.

PHP - "Funcionalidade"

PHP Hypertext Preprocessor - é uma linguagem script especialmente adequada para desenvolvimento web que pode ser incorporada no HTML 
.:.Ferramentas .:. PhP programação

JavaScript - "Interatividade"

JavaScript ou JS, é uma linguagem de programação de alto nível. É uma linguagem dinâmica.

SQL - "Base de dados"

SQL Structured Query Language  - Linguagem estruturada para Base de dados
BD com python

CSS - "Estilo"

CSS Cascading Style Sheets, HTML é usado para estruturar um documento da web, CSS especifica o estilo do documento - layout, cores e fontes. 

Uma base de dados é um simples repositório de informação. Uma coleção de dados estruturados de determinada maneira que permite efetuar consultas, atualizações…
As bases de dados são estruturadas em tabelas. Uma base de dados pode ter várias tabelas.

As tabelas são linhas e colunas que contêm dados.  Cada coluna de uma tabela é denominada por campo. Os campos contêm tipos específicos de informação, como
nome, sobrenome ou ano de nascimento.
Cada linha é dividida em células que contêm uma única parte de um dado. Uma linha horizontal de células é denominada por registo.

Para aceder a todos os códigos sql https://www.w3schools.com/sql/default.asp

Para começar é necessário ter o Wamp ou Xampp server a funcionar (Lamp para Linux).

As bases de dados vão ser criadas através do PhpMyAdmin tal como mostra a imagem.

Nota:
Por defeito a entrada no PhpMyAdmin

Utilizador: "root"

Palavra-passe: "em branco"

https://dev.mysql.com/downloads/workbench/

Esta ferramente permite trabalhar as bases de dados de forma mais fácil e intuitiva

Uma vez no PhpMyAdmin, o processo para criar uma base de dados é simples:
1º New
2º Indicar o nome da Base de dados (No caso TestePhpSql)
3º Criar
Tal como mostra a imagem

Uma vez criada a Base de dados TestePhpSql. Agora podemos criar as tabelas.

Existem duas formas distintas de criar tabelas, uma difícil e uma fácil. Neste caso vamos usar a mais difícil porque nos vai permitir uma melhor compreensão aquando da integração com o Php.

Nota: numa Base de dados podemos criar várias tabelas

Algumas operações recorrentes nos dados das tabelas são:
 - CREATE (criar tabelas)
 - INSERT (Inserir dados nas tabelas)
 - SELECT (Selecionar dados nas tabelas mediante um critério)
 - UPDATE (Atualizar dados existentes nas tabelas)
 - ORDER (Ordenar dados das tabelas) 

   

DDL (Data Definition Language) - Comandos que podem ser usados ​​para definir o esquema da base de dados:
     - CREATE -  criar a BD ou os seus objetos (tabela, índice, função, visualizações, procedimento de armazenamento e gatilhos).
     - DROP -  excluir objetos da BD.
     - ALTER -  alterar a estrutura da BD.
     - TRUNCATE - remove todos os registos de uma tabela, incluindo todos os espaços reservados para os registos.
     - COMMENT - adicionar comentários.  
     - RENAME - renomear um objeto existente na BD.

DML (Data Manipulation Language) – Comandos que permitem a manipulação de dados:
     - SELECT Consultar dados da BD (tb considerado um comando DQL).
     - INSERT - Inserir dados em uma tabela.
     - UPDATE - Atualizar os dados existentes em uma tabela.
     - DELETE - Excluir registos de uma tabela da BD.

DCL (Data Control Language): Comandos que lidam com os direitos, permissões e outros controlos do sistema da BD.
      - GRANT - dá privilégios de acesso do utilizador à BD.
      - REVOKE - retira os privilégios de acesso do utilizador à BD.

TCL (Transaction Control Language) - Lidam com a transação dentro da BD.
     - COMMIT - confirma uma transação.
     - ROLLBACK - reverte a transação em caso de erro.
     - SAVEPOINT – define um ponto para guardar uma transação.
     - SET TRANSACTION - especifica as características da transação.

Partindo do princípio que:
 - Está selecionada a Base de dados TestePhpSql.
 - Foi ativado o separador SQL (como mostra a imagem anterior).

Então - estão preenchidos todos os requisitos para começar  a escrever o código da nossa tabela em SQL (versão mais difícil).


Neste momento temos uma estrutura criada que contempla:
 - Uma base de dados TestePhpSql.
 - Uma tabela info2
     - A tabela info2 tem os campos (id, assunto, conteudo, datai)
Podemos então inserir dados na tabela

Partindo do princípio que:
 - Está selecionada a Base de dados TestePhpSql.
 - Foi ativado o separador SQL

Então - estão preenchidos todos os requisitos para começar  a inserir dados na tabela info2.

Neste momento foi criada uma BD, uma tabela e foram inseridos dados na tabela.

O próximo passo é selecionar dados da tabela

Partindo do princípio que:
 - Está selecionada a Base de dados TestePhpSql.
 - Foi ativado o separador SQL

Então - estão preenchidos todos os requisitos para começar  a selecionar dados da tabela info2. Neste caso iremos selecionar todos os registos cujo id seja igual a 1.

O UPDATE permite atualizar os dados da tabela (alterar os dados da tabela) 

Partindo do princípio que:
 - Está selecionada a Base de dados TestePhpSql.
 - Foi ativado o separador SQL

Então - estão preenchidos todos os requisitos para começar  a atualizar dados da tabela info2. Neste caso iremos atualizar  todos os registos cujo id seja igual a 1, nos campos assunto e conteudo.

DELETE permite apagar dados da tabela mediante um critério

Partindo do princípio que:
 - Está selecionada a Base de dados TestePhpSql.
 - Foi ativado o separador SQL

Então - estão preenchidos todos os requisitos para começar  a apagar dados da tabela info2. Neste caso iremos apagar o registo cujo id seja igual a 2.

ORDER permite ordenar os dados da tabela mediante um critério

Partindo do princípio que:
 - Está selecionada a Base de dados TestePhpSql.
 - Foi ativado o separador SQL

Então - estão preenchidos todos os requisitos para começar  a ordenar os dados da tabela info2. Neste caso iremos ordenar os registos em ordem descendente tendo como critério o campo id.

Também podemos ordenar os registos em ordem ascendente ou por outro critério

Lembrar que o código php deve ser guardado na pasta www do WAMP server

A não esquecer:
 - O utilizador da base de dados é root e password "vazio"
 - A nossa base de dados tem o nome de TestePhpSql

De volta ao editor "Atom"
Para começar vamos criar uma estrutura de pastas dentro da pasta www do Wamp 

Esta estrutura de pastas é importante porque, tal como em outras linguagens de programação a organização é fundamental.

Ver código em *,txt

1 - Tal como mostra a imagem em primeiro lugar vamos criar um ficheiro em Php que permitirá a conexão à Base de Dados. Este ficheiro vai ter o nome de dbh.inc.php e vaificar guardado na pasta includes, ou seja, C:\wamp64\www\BDsqlPhp\includes

     

Mais info em: https://www.w3schools.com/php/php_mysql_insert.asp

      



Objetivo: Mostrar os dados da tabela info2 da Base de Dados TestePhpSql

- 1 - Criar um ficheiro PHP na pasta BDsqlPhp
- 2 - No início do ficheiro vamos chamar a conexão à Bd criada no ficheiro dbh.inc.php 

mysqli_set_charset($conn,"utf8");
// Evitar o erro dos caracteres especiais (opcional)

$sql = "SELECT * FROM info2;";
//Indica a tabela da Bd (repara que o código entre aspas é SQL)

$result = mysqli_query($conn,$sql);
// consulta à Base de dados


Nota: Sempre que escrevemos código entre aspas estamos a escreve código SQL, esse foi o motivo pelo qual escolhemos a maneira difícil de criar Bd em SQL

Ver código em *,txt

Download dos ficheiros

      

2 - Depois de criado o ficheiro para permitir a conexão à BD vamos criar um código que permita mostrar os dados da Base de Dados.

     

Neste exemplo vamos aplicar as mesmas regras do exemplo anterior, regras como:
- Estrutura de pastas; (Este exemplo ficará na pasta BDsqlPhpLogin)
- Nome dos ficheiros;
Mantendo a coerência do código vamos manter os nomes da variáveis.

\includes\dbh.inc.php
Assim sendo podemos começar por copiar a pasta includes para este novo exemplo, uma vez que tudo se manterá igual excepto o nome da Base de Dados. Esta Bd vai chamar-se 
SistLogin, por isso a linha de código do ficheiro dbh.inc.php, referente ao nome da Bd será: $dbName ="SistLogin"; 

index.php
Este ficheiro também podemos copiar do exemplo anterior, lembrando que é importante manter a linha include_once'includes\dbh.inc.php'; porque esta linha liga este ficheiro ao ficheiro dbh.inc.php permitindo a conexão à Bd.

Criar a Base de dados SistLogin
Para dar continuidade ao trabalho é necessário criar a Base de dados SistLogin através da consola phpmyadmin, este processo já foi explicado anteriormente. Por isso, para este exemplo, apenas serão indicados os campos da base de dados.
Base de Dados - SistLogin
   - Tabela - users 5 colunas  campos 

Ver código em *,txt

1 - A imagem mostra o ficeiro PHP que permite o acesso aos dados da BD

     

      

insert.php
Em primeiro lugar vamos criar um formulário HTML para inserir os dados na BD. Aquando a criação do form é necessário ter em conta os nomes dados ao parâmetro "name" ele funcionará como uma variável 
Este ficheiro terá uma ligação ao ficheiro includes\signup.inc.php

Ver código em *,txt

  

includes\signup.inc.php
Neste ficheiro será criada a comunicação com a BD. É através deste ficheiro que os dados inseridos no formulário serão associados à BD.

     

Algumas questões de segurança aquando do preenchimento do formulário,
Esta linha de código pode ser escrita assim, mas...
$primeiro = $_POST['primeiro'];
Se o utilizador escrever um código PHP numa caixa do formulário esse código será 
interpretado no nosso código e poderá destruir a nossa página. A solução para este problema é:
$primeiro = mysqli_real_escape_string($conn,$_POST['primeiro']);