7
RESUMO DAS AULAS DE PHP E MySQL Prof. Celso Gallão Colégio Singular - Resumo das Aulas de PHP e MySQL - Prof. Celso Gallão Página 1 Linguagem PHP e MySQL Este material é apenas um resumo para acompanhamento dinâmico das aulas ministradas, sendo necessário o acompanhamento, e as orientações, do professor. PARTE 01 - Introdução ao Banco de Dados 1 - Visão Geral Neste ponto do Curso Técnico você já está familiarizado com a teoria dos Bancos de Dados, portanto, vamos apenas lembrar, ou reforçar, alguns conceitos: a) Um Banco de Dados é uma coleção de Tabelas. b) Uma Tabela contém um conjunto de Registros. c) Todos os Registros têm o mesmo número de Campos. d) Cada Campo categoriza um Dado. e) É importante definir um campo com identificador exclusivo, para evitar duplicidade de informações. f) É importante relacionar as Tabelas de um Banco de Dados através de um campo com identificador exclusivo. 1.1 - O Básico do SQL Embora a Linguagem de Consulta Estruturada (SQL) tenha sido desenvolvida pela IBM, o SQL está atualmente sob a regulamentação do American National Standarts Institute (ANSI). O conhecimento do conjunto de comandos SQL padrão permite a utilização do SQL em múltiplos sistemas de bancos de dados, como INFORMIX, Microsft SQL Server, PostgreSQL, Oracle, Sybase, mSQL e MySQL: CREATE Cria uma nova Tabela no Banco de Dados: CREATE TABLE [nome_tab] (nome_campo tipo_campo (tamanho),...); ALTER Modifica a estrutura de uma Tabela existente: Para alterar o tamanho de um campo para 5: ALTER TABLE [nome_tab] CHANGE nome_campo nome_campo varchar(5); Para adicionar um novo campo: ALTER TABLE [nome_tab] ADD nome_campo tipo_campo(tamanho); DROP Remove definitivamente elementos como Campos e Tabelas. DROP TABLE [nome_tab]; Para remover apenas um campo da Tabela, e todos os dados contidos nele: ALTER TABLE [nome_tab] DROP [nome_campo]; INSERT Adiciona um Registro à Tabela. INSERT INTO [nome_tab] ([nome_campo1], [nome_campo2],...) VALUES ([valor_campo1], [valor_campo2],...); UPDATE Modifica Dados em um Registro existente. Caso não declare a expressão WHERE, todos os registros serão modificados: UPDATE [nome_tab] SET [nome_campo1] = ‘[novo_valor]’ WHERE [expressão]; SELECT Executa um consulta em uma Tabela, fazendo com que determinados registros sejam selecionados: SELECT [nome_campo1, nome_campo2,...] FROM [nome_tab] WHERE [expressão] ORDER BY [nome_campo] ASC/DESC; DELETE Remove definitivamente os elementos de uma Tabela. DELETE FROM [nome_tab] WHERE [expressão]; 1.2 - O Banco de Dados MySQL Neste curso optamos pela utilização do MySQL por ser o mais popular entre os desenvolvedores PHP, possui várias funções muito bem documentadas do PHP com o MySQL e é código aberto. No manual do PHP existe uma lista completa de funções, mas para nossos estudos, utilizaremos apenas as principais, para a simples conexão e seleção de dados. mysql_connect( ) Abre uma conexão ao servidor MySQL. Requer o nome de host, nome de usuário e senha. mysql_select_db( ) Seleciona um Banco de Dados no MySQL, tornando-o ativo. mysql_query( ) Executa uma consulta ao Banco de Dados ativo. mysql_fetch_array( ) Obtém uma linha do resultado pesquisado, armazenando-a em uma matriz (array). mysql_free_result( ) Obtém os dados de um resultado. Consulta pelo nome ou posição. mysql_close( ) Fecha a conexão com o MySQL. 1.3 - O Banco de Dados ODBC Neste curso optamos pela utilização do MySQL, entretanto se o seu ambiente de trabalho não inclui o MySQL, ou nenhum outro Banco de Dados aqui mencionado, não há problema algum! O PHP inclui funções para o ODBC (Open DataBase Conectivity), o que é muito útil se a conexão for feita em um Banco de Dados Microsoft ACCESS em Windows NT: odbc_connect( ) Abre uma conexão a ODBC. Requer o nome da origem (datasource)do Banco de Dados, nome de usuário e senha. odbc_prepare( ) Lê uma declaração SQL para execução.. odbc_execute( ) Executa uma declaração SQL. odbc_result_all( ) Coloca o resultado da sua declaração SQL dentro de uma página HTML bem formatada. odbc_free_result( ) Libera os recursos em uso pela conexão atual. odbc_close( ) Fecha a conexão atual.

PHP com MySQL

Embed Size (px)

DESCRIPTION

Apostila de PHP com MySQL para iniciantes

Citation preview

  • RESUMO DAS AULAS DE PHP E MySQL Prof. Celso Gallo

    Colgio Singular - Resumo das Aulas de PHP e MySQL - Prof. Celso Gallo Pgina 1

    Linguagem PHP e MySQL Este material apenas um resumo para acompanhamento dinmico das aulas ministradas,

    sendo necessrio o acompanhamento, e as orientaes, do professor.

    PARTE 01 - Introduo ao Banco de Dados

    1 - Viso Geral Neste ponto do Curso Tcnico voc j est familiarizado com a teoria dos Bancos de Dados, portanto, vamos apenas lembrar, ou reforar, alguns conceitos:

    a) Um Banco de Dados uma coleo de Tabelas. b) Uma Tabela contm um conjunto de Registros. c) Todos os Registros tm o mesmo nmero de Campos. d) Cada Campo categoriza um Dado. e) importante definir um campo com identificador

    exclusivo, para evitar duplicidade de informaes. f) importante relacionar as Tabelas de um Banco de

    Dados atravs de um campo com identificador exclusivo.

    1.1 - O Bsico do SQL Embora a Linguagem de Consulta Estruturada (SQL) tenha sido desenvolvida pela IBM, o SQL est atualmente sob a regulamentao do American National Standarts Institute (ANSI). O conhecimento do conjunto de comandos SQL padro permite a utilizao do SQL em mltiplos sistemas de bancos de dados, como INFORMIX, Microsft SQL Server, PostgreSQL, Oracle, Sybase, mSQL e MySQL:

    CREATE Cria uma nova Tabela no Banco de Dados: CREATE TABLE [nome_tab] (nome_campo tipo_campo (tamanho),...);

    ALTER Modifica a estrutura de uma Tabela existente: Para alterar o tamanho de um campo para 5:

    ALTER TABLE [nome_tab] CHANGE nome_campo nome_campo varchar(5);

    Para adicionar um novo campo: ALTER TABLE [nome_tab] ADD nome_campo tipo_campo(tamanho);

    DROP Remove definitivamente elementos como Campos e Tabelas. DROP TABLE [nome_tab];

    Para remover apenas um campo da Tabela, e todos os dados contidos nele: ALTER TABLE [nome_tab] DROP [nome_campo];

    INSERT Adiciona um Registro Tabela. INSERT INTO [nome_tab] ([nome_campo1], [nome_campo2],...) VALUES ([valor_campo1], [valor_campo2],...);

    UPDATE Modifica Dados em um Registro existente. Caso no declare a expresso WHERE, todos os registros sero modificados: UPDATE [nome_tab] SET [nome_campo1] = [novo_valor] WHERE [expresso];

    SELECT Executa um consulta em uma Tabela, fazendo com que determinados registros sejam selecionados: SELECT [nome_campo1, nome_campo2,...] FROM [nome_tab] WHERE [expresso] ORDER BY [nome_campo] ASC/DESC;

    DELETE Remove definitivamente os elementos de uma Tabela. DELETE FROM [nome_tab] WHERE [expresso];

    1.2 - O Banco de Dados MySQL Neste curso optamos pela utilizao do MySQL por ser o mais popular entre os desenvolvedores PHP, possui vrias funes muito bem documentadas do PHP com o MySQL e cdigo aberto. No manual do PHP existe uma lista completa de funes, mas para nossos estudos, utilizaremos apenas as principais, para a simples conexo e seleo de dados.

    mysql_connect( ) Abre uma conexo ao servidor MySQL. Requer o nome de host, nome de usurio e senha.

    mysql_select_db( ) Seleciona um Banco de Dados no MySQL, tornando-o ativo.

    mysql_query( ) Executa uma consulta ao Banco de Dados ativo.

    mysql_fetch_array( ) Obtm uma linha do resultado pesquisado, armazenando-a em uma matriz (array).

    mysql_free_result( ) Obtm os dados de um resultado. Consulta pelo nome ou posio.

    mysql_close( ) Fecha a conexo com o MySQL.

    1.3 - O Banco de Dados ODBC Neste curso optamos pela utilizao do MySQL, entretanto se o seu ambiente de trabalho no inclui o MySQL, ou nenhum outro Banco de Dados aqui mencionado, no h problema algum! O PHP inclui funes para o ODBC (Open DataBase Conectivity), o que muito til se a conexo for feita em um Banco de Dados Microsoft ACCESS em Windows NT:

    odbc_connect( ) Abre uma conexo a ODBC. Requer o nome da origem (datasource)do Banco de Dados, nome de usurio e senha.

    odbc_prepare( ) L uma declarao SQL para execuo..

    odbc_execute( ) Executa uma declarao SQL.

    odbc_result_all( ) Coloca o resultado da sua declarao SQL dentro de uma pgina HTML bem formatada.

    odbc_free_result( ) Libera os recursos em uso pela conexo atual.

    odbc_close( ) Fecha a conexo atual.

  • Colgio Singular - Resumo das Aulas de PHP e MySQL - Prof. Celso Gallo Pgina 2

    PARTE 02 - Criando Conexo

    2 - Conectar o PHP com o MySQL Vamos construir um exemplo de uma loja, onde queremos controlar todos os produtos venda:

    2.1- Passo 1: Conectar o Servidor Vamos supor os seguintes parmetros: 1 Nome do servidor: localhost. 2 - Nome do usurio: aluno 3Senha do usurio: 123

    //Criar conexo $conectar = mysql_connect("localhost","aluno","123") or die ("No foi possvel conectar ao servidor.");

    Os trs parmetros da funo mysql_connect() foram armazenados em uma varivel qualquer, que neste exemplo chamamos $conectar. Caso algum parmetro fornecido seja falso, a conexo no acontecer e ser executada a funo die(), que encerra a execuo e exibe uma mensagem na tela.

    2.2- Passo 2: Conectar o Banco de Dados Vamos supor o seguinte parmetro: 1 Nome do banco de dados: BD_aluno. 2 - Varivel para conectar o servidor: $conectar

    //Acessar Banco de Dados j criado $banco = mysql_select_db("BD_aluno",$conectar) or die ("No foi possvel selecionar o Bco Dados.");

    Os dois parmetros da funo mysql_select_db() foram armazenados em uma varivel qualquer, que neste exemplo chamamos $banco. Caso algum parmetro fornecido seja falso, a conexo no acontecer e ser executada a funo die(), que encerra a execuo e exibe uma mensagem na tela.

    2.3- Passo 3: Efetuar a Operao Vamos supor os seguintes parmetros: 1 - Varivel com os comandos SQL: $varSQL 2 - Varivel para conectar o servidor: $conectar

    //Testar a conexo $operar = mysql_query($varSQL, $conectar) or die ("No foi possvel executar a operao.");

    Os dois parmetros da funo mysql_query() foram armazenados em uma varivel qualquer, que neste exemplo chamamos $operar. Caso algum parmetro fornecido seja falso, a conexo no acontecer e ser executada a funo die(), que encerra a execuo e exibe uma mensagem na tela.

    PARTE 03 - Consultando Banco de Dados

    3 - Conectar o PHP com o MySQL Vamos construir um exemplo de uma loja, onde queremos CONSULTAR todos os produtos venda:

  • Colgio Singular - Resumo das Aulas de PHP e MySQL - Prof. Celso Gallo Pgina 3

    PARTE 04 - Criando Tabelas PHP e MySQL

    4 - Como Criar Tabelas Vamos construir um exemplo de uma loja, onde queremos controlar todos os produtos venda. Vamos determinar um nome para esta Tabela: TAB_CLIENTES.

    Agora vamos definir os Campos necessrios para armazenar as informaes dos clientes desta loja: Cdigo: COD_CLI Nome: NOME_CLI E-Mail: MAIL_CLI Senha: SENHA_CLI Sexo: SEXO_CLI Data de Nascimento: DTNASC_CLI Endereo: END_CLI Bairro BAI_CLI Cidade: CID_CLI Estado: UF_CLI CEP: CEP_CLI CPF: CPF_CLI

    Agora vamos criar um sequncia de 3 formulrios HTML e PHP que iro receber as informaes e envi-las ao Banco de Dados MySQL. 1 Passo: Formulrio chamado AT1_NOVATAB1.htm

    onde o administrador do Banco de Dados ir digitar o nome da Tabela e a quantidade de campos desta Tabela.

    2 Passo: Formulrio chamado AT1_NOVATAB2.php onde o administrador do Banco de Dados ir digitar as caractersticas de cada Campo desta Tabela.

    3 Passo: Formulrio chamado AT1_NOVATAB3.php onde o administrador do Banco de Dados ir enviar uma requisio ao MySQL, verificando se a Tabela foi criada e exibindo uma mensagem de sucesso.

    4.1- Passo 1: Definio Bsica da Tabela

    Utilizando o Editor WinSyntax, edite um programa HTML chamado AT1_NOVATAB1.htm, conf. Lay-Out abaixo:

    Neste programa crie um formulrio chamado FORM_PASSO1, com mtodo POST, que acessar arquivo chamado AT1_NOVATAB2.php.

    Crie os objetos de formulrio abaixo:

    tipo do campo

    nome do campo tam. dig. mx.

    Para digitar o nome da Tabela

    Text NOME_TAB1 20 20

    Para digitar a quantidade de Campos

    Text QTDE_CAMPOS1 3 3

    Boto LIMPAR

    Reset BT_LIMPAR1 - -

    Boto CONTINUAR

    Submit BT_ENVIAR1 - -

    4.2- Passo 2: Definio dos Campos

    Utilizando o Editor WinSyntax, edite um programa PHP chamado AT1_NOVATAB2.php, conf. Lay-Out abaixo:

    Primeiro, verifique se os dados do 1 Passo foram realmente preenchidos pelo administrador . Caso um dos dois campos estiver em branco, dever retornar ao 1 Passo para preench-lo.

    Para exibir o nome da tabela, abra o php no local aonde quer que o nome aparea, e exiba o contedo da varivel $nometab e feche o php em seguida.

    Passo 2 - Definir os Campos da Tabela

    Agora crie um formulrio chamado FORM_PASSO2, com mtodo de acesso POST, que acessar um arquivo chamado AT1_NOVATAB3.php.

    Por ser necessrio enviar p/ o 3 Passo os campos do 1 Passo (NOME_TAB1 e QTDE_CAMPOS1), vamos receber esses valores aqui no 2 Passo e guard-los em objetos ocultos, apenas para que eles faam parte deste formulrio e possam ser enviados automaticamente ao prximo formulrio no 3 Passo.

  • Colgio Singular - Resumo das Aulas de PHP e MySQL - Prof. Celso Gallo Pgina 4

    Criar uma Tabela em HTML contendo 2 linhas com 3 colunas, sem bordas e comprimento mximo da tela:

    1 Linha: Nome do Campo Tipo Tamanho

    2 Linha: Estar dentro de um lao lgico em PHP, que ir se repetir at a quantidade de vezes determinada no 1 Passo, que est armazenada na varivel $qtde. Desta forma aparecer na tela uma linha para cada campo da Tabela HTML:

    Caixa de Texto nome: nomecampo[ ]

    tamanho: 30 dig. mx.: 30

    Lista Select nome: tipocampo[ ]

    float (flutuante) int (inteiro) text (texto) varchar (caracter)

    Caixa de Texto nome: tamcampo[ ]

    tamanho: 5 dig. mx.: 5

  • Colgio Singular - Resumo das Aulas de PHP e MySQL - Prof. Celso Gallo Pgina 5

    Ainda h um trabalho a fazer para encerrar a funo CREATE, pois repare que ficar no final uma vrgula estranha e os parnteses ainda tm que ser fechados. Para se livrar da vrgula excedente, use a funo substr( ) para retornar apenas uma parte da string. Neste caso, voc retornar toda a string com exceo do ltimo caracter.

    //Exibir todo o contedo da varivel $criar, iniciando da posio 0, ou seja do primeiro caracter at o penltimo caracter, ou seja -1. $criar = substr($criar, 0, -1);

    //Fechar o parntese, e nada mais. $criar .= ")";

    Para verificarmos se a funo CREATE agora foi criada corretamente, exiba novamente a varivel $criar na tela:

    //Verificar se a varivel agora foi criada corretamente echo "$criar";

    Para estabelecer uma conexo ao MySQL vamos criar uma varivel chamada $conexao para utilizarmos a funo mysql_connect, informando o host, usurio e a senha.

    //Estabelecer conexo com o MySql //Criar conexo $conexao = mysql_connect("servidor","usurio","senha") or die ("No foi possvel conectar ao servidor.");

    Para acessar um Banco de Dados, este j deve existir, pois iremos apenas adicionar uma nova Tabela a ele. Vamos criar uma varivel chamada $banco p/ utilizarmos a funo mysql_select_bd, informando o nome do Banco de Dados e todo o contedo da varivel $conexao.

    //Acessar Banco de Dados j criado $banco = mysql_select_db("banco",$conexao) or die ("No foi possvel selecionar o B.D.");

    Para testar a conexo vamos criar uma varivel chamada $grava para utilizarmos a funo mysql_query, informando a funo CREATE (que o contedo da varivel $criar) e a conexo (que o contedo da varivel $conexao):

    //Testar a conexo $grava = mysql_query($criar, $conexao) or die ("No foi possvel criar a tabela."); ?>

    Para encerrar, verifique se a varivel $grava foi criada. Caso afirmativo d uma mensagem de sucesso, caso negativo, informe que no foi possvel a criao.

    if (!$grava) { echo "No foi possvel criar a Tabela $nometab"; } else { echo "Tabela $nometab criada com sucesso!"; }

  • Colgio Singular - Resumo das Aulas de PHP e MySQL - Prof. Celso Gallo Pgina 6

    PARTE 05 - Consultando Pginas Dinmicas

    5 - O mtodo GET Vamos realizar consultas ao banco de dados com diferentes filtros, de modo que sero exibidos trs links para consulta:

    Consulta para exibir todos os DVDs. Consulta para exibir apenas os DVDs de Filmes. Consulta para exibir apenas os DVDs de Shows.

    Para tanto, ao invs de editarmos 3 pginas de consulta, faremos apenas uma, chamada ConGeral.php. Quando o usurio clicar no link desejado, o prprio link enviar informaes atravs de variveis.

    Para enviar uma varivel pelo mtodo GET basta inserir o sinal de interrogao (?) logo aps o nome da pgina a ser acessada, seguido do nome da varivel e seu valor. Caso existam mais variveis a serem enviadas, acrescente o sinal de e-comercial (&) e digite o nome e o valor da segunda varivel, e assim por diante.

    O cdigo-fonte a seguir dever ser inserido em uma pgina inicial chamada menu.php.

    Loja Virtual de DVD CONSULTAS - Nome do Aluno Todos os DVDs Somente os FILMES Somente os SHOWS

    Como o mtodo GET exibe todas as variveis e seus contedos na caixa de endereo do navegador, fcil perceber que no devem ser enviados valores sigilosos como senhas, por exemplo. Para estes casos utilize o mtodo POST.

    Quando o usurio clicar sobre um desses trs links, a pgina de consulta ConGeral.php ser executada pelo navegador. preciso fazer o recebimento e a verificao das variveis que foram enviadas junto com o link. Uma simples verificao com if() ou switch() desviar a execuo da pgina de acordo com o contedo a ser exibido, e criar uma linha de consulta SQL diferente para cada tipo. Para tanto, vamos armazenar a linha do SQL em uma varivel chamada $consulta.

    Caso o tipo = 0, desejamos exibir todos os DVDs gravados no banco de dados, ento a linha de consulta SQL no far filtro algum. Repare que no h o parmetro WHERE.

    Caso o tipo = 1 ou tipo = 2, desejamos filtrar a consulta, e portanto utilizaremos o parmetro WHERE que especifica o campo TIPO_DVD, podendo ter o valor 1 ou 2.

    $tipo = $_GET["tipo"]; $exibe_tipo = $_GET["exibe"]; switch ($tipo) { case "0": $consulta = "SELECT COD_DVD, NOME_DVD, DESC_DVD, PRECO_DVD, TIPO_DVD, FOTO_DVD FROM TAB_DVD ORDER BY NOME_DVD ASC"; break; case "1": case "2": $consulta = "SELECT COD_DVD, NOME_DVD, DESC_DVD, PRECO_DVD, TIPO_DVD, FOTO_DVD FROM TAB_DVD WHERE TIPO_DVD=$tipo ORDER BY NOME_DVD ASC"; break; }

    O restante do cdigo fonte para a consulta idntico aos programas anteriores de consulta a bancos de dados. Ainda dentro do PHP, faa a conexo ao servidor e ao banco de dados:

    //Estabelecer conexo com o MySql $conexao = mysql_connect("servidor","usurio","senha") or die ("No foi possvel conectar ao servidor.");

    //Acessar o Banco de Dados $banco = mysql_select_db("banco",$conexao) or die ("No foi possvel selecionar o B.D.");

    //Efetuar a operao do SQL $resultado = mysql_query($consulta, $conexao) or die ("No foi possvel criar a tabela."); ?>

  • Colgio Singular - Resumo das Aulas de PHP e MySQL - Prof. Celso Gallo Pgina 7

    Em seguida inicie a montagem da parte HTML, determinando cores para o fundo e para os textos. Exiba tambm uma mensagem dinmica no alto da pgina que depender do contedo da varivel $exibe_tipo.

    Consulta de DVDs

    EM DVD

    Agora crie a tabela que exibir o resultado da consulta. Primeiro monte a linha de cabealho da tabela:

    Foto Cdigo Nome Descrio Preco R$

    Ainda no feche a tabela. Abra o PHP e crie um lao lgico para a consulta no banco de dados. Cada DVD ser exbido em uma linha da tabela HTML: