Por Vitor Hugo Migoto de Gouvêa Webdesigner e Tecnico em Informática Colégio IDESA - Taubaté 1 Índice Essência do PHP Variáveis Principais Operadores Algumas Funções do PHP Retomando Formulário HTML Tag <Form> Tag <input> Objeto SELECT Caixas de Seleção Única e Múltipla Seleção (RADIO e CHECKBOX) O Objeto TEXTAREA Exercícios Pag 3 Pag 3 Pag 3 Pag 4 Pag 4 Pag 5 Pag 6 Pag 6 Pag 7 Pag 8 Condição e Laço If While Exercícios Pág 9 Pág 9 Pág 11 Conexão com o Banco de Dados Mysql_connect() Mysql_select_db() Mysql_query() Mysql_fetch_array() Mysql_close() Pag 12 Pag 12 Pag 12 Pag 13 Pag 13 Sentenças SQL Inclusão Exclusão Atualização Pesquisa Pág 14 Pág 14 Pág 14 Pag 14 Colégio IDESA - Taubaté 2 Essência do PHP Variaveis Variaveis são espaços ,identificados por um nome, criados na memória do computador para que possamos guardar determinados valores para serem utilizados durante uma aplicação. Diretamente no PHP as variaveis são identificadas sempre por um “$” antes de seu nome sendo que o nome deve ser formado por caracteres do alfabeto ou numeros. Vamos ver alguns exemplos de variaveis: $nome $1casa $tel_casa $tel_casa1 As variaveis podem receber diferentes tipos de valores, como inteiro booleano(True ou False), real ou string, no PHP não precisamos atribuir um tipo as nossas variaveis, com exceção das Matrizes ou tambem chamadas Arrays. Este tipo é definido com a seguinte sintaxe: $variavel[x,y] onde X é o numero de linhas da matriz e Y o numero de colunas. Principais Operadores Em PHP utilizamos alguns operadores lógicos e matematicos em algumas de nossas aplicações vamos ver os seguintes operadores e seus significados a seguir: == = >= <= ! != && || and or Significa Igualdade Significa atribuição (dar valor a alguma variavel por exemplo) Significa “Maior igual a” Significa “Menor igual a” Operador Lógico “Não” Significa Não igual (ou seja , diferente) Operador Lógico “e” Operador Lógico “ou” Operador “e” Operador “ou” Algumas Funções do PHP O PHP tem algumas funções básicas, uma delas é o ECHO que serve para exibirmos uma mensagem no navegador. O ECHO quando for utilizado para exibir uma frase ou uma tag HTML deve ter antes do conteudo a separação por “(aspas duplas) ou seja em um exemplo onde exibirei uma frase utilizo o echo da seguinte Colégio IDESA - Taubaté 3 forma: echo “Esta é a minha frase”; Perceba que no PHP em cada termino de linha de programação eu devo utilizar o ponto e virgula. No caso de exibir o valor de uma variável eu não preciso necessariamente coloca-la entre as aspas duplas posso fazer então assim: echo $variavel; e sera exibido o valor que estará guardado dentro da variável. Outra função básica do PHP é a função Empty() ela retorna um valor TRUE (verdadeiro) se a variável definida entre os parênteses estiver vazia(não contenha nenhum caractere ou valor) e FALSE(falso) se estiver com algum valor atribuída a ela. Mais uma função do PHP é a função DATE(“atributos”) ela exibe data ou horário dependendo dos atributos utilizados.(Para mais detalhes procurem esta função no manual do PHP que tem no programa PHP Editor e achará seus principais atributos) Retomando Formulário HTML Para aplicarmos a interação com nosso usuário teremos de lembrar algumas coisas da utilização de formulários em HTML.Inicialmente dividiremos e explicaremos basicamente as nossas opções. Tag <Form> Dentro da tag form que tem como função indicar o inicio de meu formulário temos as seguintes propriedades: action - define o caminho da pagina para onde eu enviarei os dados de meu formulário para que sejam tratados. method – define o método pelas quais minhas informações serão passadas pelo brownser. Temos dois métodos de envio: Post – envia os dados em background, o usuário não tem acesso aos dados enviados. Get – envia os dados pela barra de endereço do brownser mostrando os dados digitados no meu formulário. A tag <form> deve ser iniciada no inicio do formulário e fechada após o final do formulário Exemplo: <form action=”valida_formulario.php” method=”post”> . . . </form> Colégio IDESA - Taubaté 4 Tag <input> A tag input é a tag que gera as caixas de texto no formulário basicamente temos as seguintes propriedades: Type – temos três tipos nesta propriedade o tipo TEXT , o tipo PASSWORD e o tipo HIDDEN. O tipo text define uma caixa de texto normal, o tipo password troca os caracteres por símbolos normalmente utilizado em caixas de senhas, e o hidden é uma caixa de texto invisível, o usuário não vê, utilizado para passar dados de um formulário que o usuário não pode vizualizar. Name – esta propriedade é muito importante para nós, pois através do valor definido a ela é que saberemos como chamar a nossa variável na nossa pagina que tratará as informações. Nela definiremos um nome que identificará a nós a caixa especifica. Size – define o tamanho físico que nossa caixa ira ter. Maxlenght – Especifica um espaço determinado de caracteres dentro da caixa. Readonly – Deixa a caixa apenas visível, o usuário não consegue alterar seu valor. Value – Define um valor inicial que irá aparecer dentro da caixa. Diferente da tag form esta tag não precisa ser fechada, vejamos um exemplo: <form action=”valida_formulario.php” method=”post”> <input type=”text” name=”endereco” size=”10” maxlenght=”80”> <input type=”password” name=”senha” size=”5” maxlenght=”6”> <input type=”hidden” name=”codigo” size=”10” maxlenght=”80” value=”23456”> <input type=”text” name=”nome” size=”10” maxlenght=”80” readonly> </form> Temos um outro tipo de input que não é uma caixa de texto, estamos falando do Submit. Type=”Submit “ – Este é o botão que confirma o envio dos dados para a pagina especificada na tag form Colégio IDESA - Taubaté 5 Suas propriedades são apenas o Value que é o texto que aparece no botão e o size que determina seu tamanho.Vejamos o exemplo anterior completo: <form action=”valida_formulario.php” method=”post”> <input type=”text” name=”endereco” size=”10” maxlenght=”80”> <input type=”password” name=”senha” size=”5” maxlenght=”6”> <input type=”hidden” name=”codigo” size=”10” maxlenght=”80” value=”23456”> <input type=”text” name=”nome” size=”10” maxlenght=”80” readonly> <input type=”Submit” size=”25” value=”Enviar”> </form> Objeto SELECT O objeto SELECT faz a criação de caixas de listas, ele tem as seguintes propriedades: Name – como no input é o nome que identificaremos nossa caixa para podermos resgatar os dados dela. Dentro do Objeto select temos a presença de mais uma tag , a tag <option> que definirá as opções que teremos dentro da caixa de lista (cada opção representa um <option>) cada option possui uma propriedade VALUE que conterá o valor a ser enviado para a variável nomeada na propriedade name, veremos agora um exemplo de caixa de lista: <select name=”lista_estado”> <option value=”SP”> São Paulo <option value=”RJ”> Rio de Janeiro </select> No exemplo anterior vemos que temos uma caixa de lista com os estados São Paulo e Rio de Janeiro porem quando enviado o formulário a variável irá conter o valor estipulado no VALUE da opção escolhida (por exemplo se São Paulo for escolhido a variável $lista_estado receberá SP). Caixas de Seleção Única e Multipla Seleção (RADIO e CHECKBOX) As caixas de seleção única (RADIO) possuem a seguinte sintaxe: <input type=”radio” name=”sexo” value=”M”> Masculino <input type=”radio” name=”sexo” value=”F”> Feminino Vemos novamente as propriedades NAME e VALUE como na caixa de lista elas possuem a mesma função com uma diferença, no radio para que se tenha apenas Colégio IDESA - Taubaté 6 uma seleção é preciso que o name seja o mesmo em todas as opções, e como na caixa de lista o valor enviado para a variável é o valor estipulado no VALUE, ou seja, será enviado ou M ou F. As caixas de múltipla seleção (CHECKBOX) possuem a sintaxe a seguir: < input type=”checkbox” name=”televisao” value”tv”> TV < input type=”checkbox” name=”radio” value”radio”> Radio < input type=”checkbox” name=”computador” value”pc”> Computador Vemos mais uma vez as propriedades NAME e VALUE, elas possuem a mesma função que o radio com a diferença que como CHECKBOX o usuário consegue fazer mais de uma seleção, e como visto anteriormente o valor também enviado para a variável é o valor estipulado no VALUE. O Objeto TEXTAREA Este objeto tem como função abrir uma caixa de texto longo. Vejamos suas propriedades: Name – também como no input é o nome que identificaremos nossa caixa para podermos resgatar os dados dela. Cols – Numero de colunas que a caixa terá. Rows – Numero de linhas que a caixa terá Diferente do iinput a sintaxe do TEXTAREA é diferente, veremos como ela é: <textarea name=”mensagem” cols=”10” rows=”15”>TEXTO INICIAL</textarea> Como observamos no exemplo a tag tem de ser fechada e se optar por um texto inicial dentro da caixa, o texto deve ser escrito entre a tag <textarea> e </textarea>. Observando esta ultima caixa terminamos nossa volta aos formulários de HTML. Estes muito importantes para podermos interagir de forma eficiente e simples com o usuário.Vejamos agora alguns exercícios que podem ser feitos usando o que aprendemos para podermos exercitar nossa aplicação Colégio IDESA - Taubaté 7 EXERCICIOS 1) Monte uma pagina onde possuiremos um formulário com os seguintes campos: Nome Senha telefone endereço cidade estado pais Após montar a pagina salve com o nome “formulario.html” e no action do form deverá ser mandado para “tratamento.php”. Após isso na pagina tratamento.php usando a função echo exiba os dados preenchidos no formulário. 2) Construa uma pagina onde teremos os campos: Nome Telefone E-mail Sexo (usando select) o Masculino (value=”M”) o Feminino (value=”F”) Pais (usando Radio) o Brasil (value=”br”) o Outro (value=”outro”) Meio de comunicação preferido(usando Checkbox) o Radio o TV o Internet Mensagem (usando textarea) Após montar a pagina salve como “formulario2.html” e no action do form deverá ser mandado para “tratamento2.php”. Após isso na pagina tratamento2.php usando a função echo exiba os dados preenchidos no formulário. Colégio IDESA - Taubaté 8 Condição e Laço Condição “If” Para quem não conhece if traduzido para o português significa “se”. Esta é uma condição muito utilizada em PHP e em outras diversas linguagens de programação, a condição “if” como a própria tradução informa, ela nos retorna duas soluções, uma caso a condição for Verdadeira e outra caso a condição seja Falsa. Vejamos agora a sintaxe da utilização do if: If (condição) { Ação caso a condição for Verdadeira; } Else { Ação caso a condição for Falsa; } Vimos acima a sintaxe do “if”, simplesmente ele executa as ações descritas entre as primeiras chaves caso a condição especificada for Verdadeira e entre as chaves após o Else (que significa senão) ele executará as ações caso a condição for Falsa. Podemos usar o if para fazermos verificações de formulários e muitas outras coisas. Laço “While” Laço é uma expressão usada para indicar a repetição de instruções perante uma condição. Normalmente em banco de dados utilizamos esta função de laço para levantarmos resultados de pesquisas e joga-los em matrizes. A sintaxe do comando é simples acompanhe abaixo: While (condição) { Instruções; Incremento ou decremento; } Colégio IDESA - Taubaté 9 A sintaxe a cima é interpretada da seguinte forma, enquanto uma condição for verdadeira ele repetirá as instruções até que o resultado da condição seja falso. Verificamos a utilização do incremento e decremento, o incremento ou decremento é quando fazemos uma atribuição somatória ou subtrativa de uma unidade a uma variável para ela própria, um exemplo é usarmos o comando ++ e – após uma variável. Portanto teremos as seguintes interpretações: $variavel++ significa que $variavel = $variavel + 1 $variavel—significa que $variavel = $variavel – 1 Então vejamos um exemplo da utilização do while e após ela faremos sua interpretação: $a = 1; While($a < 3) { Echo $a; $a++; } Echo “Saímos do Laço”; No exemplo acima temos a seguinte interpretação, igualamos a variável $a a 1, entramos no laço que enquanto a variável $a for menor que 3, irá mostrar o valor de $a e após irá somar 1 ao valor da variável $a, quando o valor de $a for maior ou igual a 3 ele sairá do laço mostrando a frase “Saímos do Laço”. Temos outros tipos de incremento e decremento no PHP para se aprofundar mais pesquisem no Manual do PHP. Colégio IDESA - Taubaté 10 Exercícios 1) Baseado no formulário do exercício 1 da pagina 8 verifique se os campos não estão vazios. 2) Construa um programa em PHP que imprima a tabuada do 5 até a décima multiplicação. Exiba o calculo da seguinte forma (5 x 1 = 5). 3) Pesquise: Qual outro tipo de laço existe no PHP e como é sua sintaxe? 4) Pesquise: No PHP existe uma função chamada empty(). Como funciona esta função e qual sua funcionalidade? Colégio IDESA - Taubaté 11 Conexão com o Banco de Dados Neste capitulo iremos mostrar os códigos para ligação com o banco de dados mysql e suas sintaxes. Após iremos mostrar alguns exemplos de uso do PHP com o banco de dados. Mysql_connect() A função mysql_connect() é usada para fazer a ligação com o servidor do banco de dados, sua sintaxe é a seguinte: Mysql_connect(“host”,”usuario”,”senha”) or die (“Falha na conexão com o servidor”); Dentro da função mysql_connect() definimos o ip do meu servidor, o nome do usuário ao qual iremos fazer acesso e a senha deste usuário, após definirmos isto vemos no exemplo uma função chamada or die() esta função exibe a mensagem definida entre as aspas quando a conexão não é feita com sucesso. Para fazer a conexão em um servidor local o host seria “localhost” ou o ip local “127.0.0.1” o usuário seria “”root” e a senha ficaria em branco “” que é como ela vem definida na instalação do server local até então que o usuário queira mudar. Mysql_select_db() Esta função define o nome do banco de dados que estaremos trabalhando, pois dentro de um servidor podemos ter diversos bancos de dados e com esta função identificamos o banco que iremos usar.A sintaxe é simples e novamente vemos a função or die(). Mysql_select_db(“banco1”) or die(“Falha na conexão com o banco de dados”); A função or die() irá exibir a frase caso ocorra falha na conexão com o banco. Mysql_query() Esta função irá executar as nossas sentenças SQL definidas nos programas em php, ou seja, quando fizermos a sentença para pesquisar um dado dentro do banco então iremos executar esta sentença colocando dentro da função mysql_query() ou então atribuindo a sentença a uma variável e assim apenas colocando a variável dentro da função.Vejamos os dois exemplos a seguir: Mysql_query(“select * from alunos”); Ou $sql = “”select * from alunos”; mysql_query($sql); Colégio IDESA - Taubaté 12 Lembrando que para a execução correta da sentença é preciso que a conexão com o servidor e o banco tenha sido realizada. Mysql_fetch_array() Esta função organiza os resultados vindos de uma pesquisa em sql para uma matriz ou array. Com esta função se torna bem mais fácil fazer a amostra de resultados no programa em php. Veremos um exemplo completo de uso de todas as funções e de funcionamento de amostragem de resultado: $con = mysql_connect(“localhost”,”root”,””) or die (“Falha no servidor”); $db = mysql_select_db(“banco1”) or die(“Falha no banco”); $sql = “select * from alunos”; $exe_sql= mysql_query($sql); while ($linha = mysql_fetch_array($exe_sql)) { echo $linha[0].” - ”.$linha[1].”<Br>”; } mysql_close($con); No exemplo acima vemos a ligação com o servidor e o banco de dados, prestando atenção que igualamos estas funções a variáveis, após montamos nossa sentença SQL (imaginemos que nossa tabela alunos possui 2 campos o código e o nome do aluno), depois executamos a função de pesquisa de sql e igualamos a função também a uma variável, então montamos um laço que irá jogar o resultado da sentença que esta em forma de array para uma variável ($linha) que irá receber todos os dados até que acabe os resultados dentro da função. Dentro do laço exibimos o código (que fica na coluna zero da matriz $linha) e o nome do aluno (que fica na coluna 1 da matriz $linha). A função mysql_fetch_array() posiciona os resultados respectivamente capturados em colunas e linhas, as colunas começam com a numeração 0 que seria a primeira coluna capturada da tabela alunos. Mysql_close() A função mysql_close() você encontrou no exemplo anterior, esta função simplesmente fecha a conexão com o servidor evitando que esta conexão fique aberta e deixe o servidor vulnerável para infiltração de código que alguns hacker costumam fazer para derrubar o sistema.Sua sintaxe é simples quando igualamos a conexão a uma variável somente precisamos colocar a variável dentro da função. Mysql_close($con); Colégio IDESA - Taubaté 13 Sentenças SQL Inclusão A sentença sql de inclusão segue a seguinte sintaxe: INSERT INTO nome_da_tabela SET campo1=’valor’, campo2=’valor’; Na sintaxe acima nome_da_tabela seria o nome da tabela ou tabelas onde será acrescentado o valor, campo1 e campo2 seriam os nomes dos campos ,idênticos aos quais foram definidos na tabela, que receberão o valor especificado. Quando temos mais de uma tabela em uma sintaxe sql determinamos os campos com o nome das tabelas aos quais pertencem antes no nome, ou seja veja o exemplo abaixo: INSERT INTO tabela2.campo1=’valor’; tabela1, tabela2 SET tabela1.campo1=’valor’, Exclusão A sentença de exclusão é a seguinte: DELETE FROM nome_da_tabela where campo1=’x’ Quando vamos deletar um registro especificado de um campo precisamos identificar que campo queremos para isso usamos a opção where que significa quando, ou seja , na sentença acima dizemos que ele deletará da tabela os nome_da_tabela os registros da linha onde campo1 for igual ao valor x. A sentença where também pode ser utilizada em outras sentenças e não somente em exclusão. Atualização A sentença de atualização é: UPDATE nome_da_tabela SET campo=’novo_valor’; Lembramos que no caso de uma atualização devemos identificar qual registro queremos alterar, portanto vemos novamente a possível utilização do where, pois com ele identificaremos qual registro especifico iremos alterar. Pesquisa A sintaxe de pesquisa é a seguinte: SELECT campo1,campo2... FROM nome_das_tabelas OPÇÕES Acima vemos a sintaxe do SELECT que depois vem os campos a serem mostrados (se for todos os campos é só utilizar o *) e depois do FROM a ou as Colégio IDESA - Taubaté 14 tabelas que serão utilizadas, depois da tabela vem a opção de pesquisa, ou seja, utilizaremos o where para identificar um determinado nome ou outras opções que você pode pesquisar como o LIKE por exemplo, podemos ordenar nossa pesquisa usando a propriedade ORDER BY e outras demais opções. Colégio IDESA - Taubaté 15