Você está na página 1de 48

Tpicos Especiais Internet/Php/MySql

Tpicos especiais HTML/PHP/MySql


EDUCAO PROFISSIONAL TCNICA DE NVEL MDIO EM INFORMTICA

Tpicos Especiais Internet/Php/MySql

Programao HTML

Afinal o que HTML ? Para se publicar informao a nvel mundial precisa-se de uma linguagem entendida mundialmente, algo parecido como uma linguagem mundial que todos os computadores possam entender. A linguagem usada para a World Wide Web o HTML (HyperText Markup Language). HTML permite aos autores os meios para: Publicar documentos online com texto, tabelas, fotografias e muito mais. Receber informaes atravs de ligaes (links) de hipertexto atravs de um clique. Desenhar forms para transaes comerciais atravs de servios remotos, para encontrar informao, fazer reservas, encomendar produtos, etc. E ainda incluir som, vdeo e muitas mais aplicaes nos documentos. Uma breve histria do HTML HTML foi originalmente desenvolvido por Tim Berners-Lee e tornou-se conhecido atravs do Mosaic, um browser desenvolvido em NCSA. Durante os primeiros anos dos 90 expandiu-se com a enorme exploso do crescimento da WWW. Durante esse tempo HTML tem-se expandido sem limites de caminhos. A web depende de autores de pginas web que partilham as mesmas concesses de HTML. Isto motivado atravs de trabalho conjunto nas especificaes do HTML. HTML 2.0 (Novembro 1995) foi desenvolvido debaixo da alada da Internet Engineering Task Force (IEFT) para "codificar" a prtica comum nos finais de 1994. HTML+ (1993) e HTML 3.0 (1995) propuseram verses muito mais ricas para o HTML. Apesar de nunca terem recebido consenso nas discusses, os rascunhos levaram adoo de novas caractersticas. Os esforos do World Wide Web Consortium's HTML Working Group para "codificar" a prtica comum em 1996 resultou no HTML 3.2 (Janeiro 1997). Muitas pessoas concordam que os documentos HTML deveriam trabalhar bem atravs de diferentes browsers e sistemas operativos. Alcanando interoperabilidade baixa os custos para as pessoas que desenvolvem pginas porque assim apenas se desenvolve uma verso do

Tpicos Especiais Internet/Php/MySql

documento. Se um esforo no for efetuado, existe um enorme risco que a web se desenvolva para um grande nmero de formatos incompatveis, reduzindo, sem quaisquer dvidas, todo o potencial comrcio na web para todos os participantes. Cada verso de HTML tem tentado refletir todo o consenso entre a indstria de software para que o investimento feito pelos autores de pginas no seja desperdiado e que os seus documentos no deixem de ser lidos num curto perodo de tempo. HTML tem sido desenvolvido com a viso que todos os equipamentos fossem capazes de usar a informao da Web, computadores com monitores de diversas resolues e vrios nmeros de cores, telefones celulares (telemveis), equipamentos para input e output de voz, computadores com alta e baixa largura de freqncia e muito mais. HTML 4.0 HTML 4.0 estende o HTML com mecanismos para sytle sheets (CSS), scripting,

frames (janelas), melhor suporte para texto com direo varivel (esquerda, direita, e ambos),
tabelas mais visualizveis, melhorias nos forms, melhor accessibilidade para pessoas com incapacidades.

Sobre a to comentada Breve histrico

Web 2.0

O termo Web 2.0 foi usado pela primeira vez em Outubro de 2004 pela O'Reilly Media e pela MediaLive International como nome de uma srie de conferncias sobre o tema, popularizando-se rapidamente a partir de ento. Tratou-se de uma constatao de que as empresas que conseguiram se manter atravs da crise da Internet possuam caractersticas comuns entre si, o que criou uma srie de conceitos agrupados que formam o que chamamos Web 2.0. Conceitualizao A conceitualizao dada neste artigo segue os princpios ditados por Tim O'Reilly, sabidamente o precursor do uso do termo em seu artigo de conceitualizao (e tambm de defesa) do termo Web 2.0. Tim define que: "Web 2.0 a mudana para uma internet como plataforma, e um entendimento das regras para obter sucesso nesta nova plataforma. Entre outras, a regra mais importante desenvolver aplicativos que aproveitem os efeitos de rede para se tornarem melhores quanto mais so usados pelas pessoas, aproveitando a inteligncia coletiva" As regras a que se refere O'Reilly j foram discutidas antes do surgimento do termo, sob outros nomes como infoware[5], the internet operating system e the open source paradigm shift e so produto de um consenso entre empresas como Google, Amazon, Yahoo e Microsoft e estudiosos da Web (como Tim O'Reilly, Vicent Cerf e Tim Berners-Lee) e da consolidao do que realmente traz resultado na Internet. Segundo Tim O'Reilly, a regra mais importante seria desenvolver aplicativos que aproveitem os efeitos da rede para se tornarem melhores quanto mais so usados pelas pessoas, aproveitando a inteligncia coletiva. Web 2.0 e a programao Comearam-se a desenvolver softwares que so usados pela Internet e vendidos no em pacotes mas como servios, pagos mensalmente como uma conta de gua. Alm disso, mudouse a forma de fazer softwares. Para que tudo funcionasse bem na Internet, foi necessria a unio de

Tpicos Especiais Internet/Php/MySql

vrias tecnologias (como AJAX) que tornassem a experincia do usurio mais rica, com interfaces rpidas e muito fceis de usar. Definiu-se ento que quanto mais simples e modular a programao, melhor. Assim fcil tirar ou acrescentar uma funcionalidade ou compartilhar uma parte do seu software com outro software. Os mdulos podem ser reutilizados em diversos softwares ou compartilhados para serem usados por programas de terceiros. Metodologias e conceitos como o Getting Real e Agile tem-se popularizado entre as empresas que desenvolvem aplicativos ditos "Web 2.0". Segundo estes princpios, os softwares so desenvolvidos de modo que fiquem melhores quanto mais so usados, pois os usurios podem ajudar a torn-lo melhor. Por exemplo, quando um usurio avalia uma notcia, ele ajuda o software a saber qual notcia a melhor. Da mesma maneira, quando um usurio organiza uma informao atravs de marcaes, ele ajuda o software a entregar informaes cada vez mais organizadas. Interfaces com o utilizador A Web 2.0 prope uma experincia de uso semelhante de aplicativos para desktop, freqentemente fazendo uso de uma combinao de tecnologias surgidas no final da dcada de 1990, que incluem Web services APIs (1998), AJAX (1998), Web syndication (1997), entre outras. Estas tecnologias aumentaram a velocidade e a facilidade de uso de aplicativos Web, sendo responsveis por um aumento significativo no contedo (colaborativo ou meramente expositivo) existente na Internet. Estas tambm permitiram que usurios comuns, que at ento no possuam conhecimentos necessrios para publicar contedo na Internet - pela ausncia de ferramentas de uso simplificado - publicassem e consumissem informao de forma rpida e constante. Notadamente tm-se os blogs e wikis como expoentes desta massificao. Permitiu ainda o desenvolvimento de interfaces ricas, completas e funcionais, sendo que alguns aplicativos Web, ainda em verso beta, so considerados por muitos como "desktops on-line", proporcionando ao usurio um ambiente de trabalho inteiramente baseado na WWW, acessvel de qualquer computador com conexo Internet. De forma particular, o AJAX permite ao usurio no esperar que uma pgina Web se recarregue ou que o processo seja terminado para continuar usando o software. Cada informao processada separadamente, de forma assncrona, de forma que no mais necessrio recarregar a pgina a cada clique. Web 2.0 e o contedo O contedo dos websites tambm sofreu um enorme impacto com a Web 2.0, dando ao usurio a possibilidade de participar, geralmente gerando e organizando as informaes. Mesmo quando o contedo no gerado pelos usurios, este pode ser enriquecido atravs de comentrios, avaliao, ou personalizao. Algumas aplicaes Web 2.0 permitem a personalizao do contedo mostrado para cada usurio, sob forma de pgina pessoal, permitindo a ele a filtragem de informao que ele considera relevante. O conceito usado comparvel com o do software livre: se h muitas pessoas olhando, todos os erros so corrigidos facilmente. Para isso existem comunidades que se automoderam, atravs da participao dos usurios indicando ao sistema qual usurio no deve mais participar da comunidade. Dentro dos princpios da Web 2.0 o contedo deve ser aberto, utilizando licenas como "Creative Commons" que flexibilizam os direitos autorais permitindo que o usurio reutilize (republicando, alterando ou colaborando) o contedo. O compartilhamento de informaes deve dar ao usurio a possibilidade de reutiliz-lo.

Tpicos Especiais Internet/Php/MySql

Alm do contedo editorial e noticioso, na web 2.0 o contedo de alguns sites visa gerar comunidades, seja atravs de sites de relacionamento, seja atravs de comentrios em notcias e blogues. Tag's, no taxonomia: o usurio organiza o prprio contedo. A organizao do contedo feita tambm pelo prprio usurio sob forma de marcaes, em contraste de uma taxonomia do sistema. Por exemplo, o aplicativo del.icio.us para guardar e compartilhar links favoritos criou o conceito de marcao de contedo. Em vez de criar pastas e categorias pr-definidas para o usurio escolher, cada usurio pode definir uma palavrachave para um determinado contedo, assim, quanto mais usurios marcarem o contedo, melhor organizado ele ser. Tecnologias novas Apesar de o termo AJAX ter sido usado pela primeira vez em 2005, as tecnologias que englobam o termo tiveram incio ainda no final da dcada de 90, nos navegadores de gerao 4 (Internet Explorer 4.0 e Netscape Navigator 4.0), que introduziram suporte a tcnicas de Remote Scripting. Com o lanamento da verso 5.0 do Internet Explorer em 2000, e com a estagnao do Netscape Navigator (que mais tarde teve seu cdigo fonte aberto gerando o Firefox), a Microsoft inaugurou uma forma mais elegante de remote Scripting com o XMLHttpRequest. Da at os dias atuais o conceito s evoluiu, ganhando fora e notoriedade recentemente. Linguagens e frameworks de desenvolvimento rpido para web (RAD) j existiam antes da Web 2.0. Pode-se citar a linguagem ColdFusion da Allaire (1995) e o Fusebox (1998)[19] . A sindicncia de contedo (famosa hoje pelo RSS), j chamada no passado de contedo push j era conhecida de usurios do Internet Explorer 4.0 e o seu servio ActiveChannels. Agncias de notcias como a Reuters j utilizavam sistemas de intercmbio de contedo e notcias entre agncias e consumidores de notcias muito antes do surgimento da Web 2.0, sistemas estes que inclusive foram os precursores dos padres atuais. O prprio XML data de 1997. A portabilidade de sistemas para dispositivos mveis (a to aclamada "convergncia"), um discurso antigo, que antecede em muito a Web 2.0, e que sempre esteve em constante evoluo, cujo passo inicial remonta os primeiros dispositivos mveis, sejam eles celulares ou PDAs.
Fonte: http://pt.wikipedia.org/wiki/Web_2.0 em 01/09/2008.

Utilizando AJAX em desenvolvimento de pginas web AJAX (acrnimo em lngua inglesa de Asynchronous Javascript And XML) o uso metodolgico de tecnologias como Javascript e XML, providas por navegadores, para tornar pginas mais interativas com o usurio, utilizando-se de solicitaes assncronas de informaes. AJAX no somente um novo modelo, tambm uma iniciativa na construo de aplicaes web mais dinmicas e criativas. AJAX no uma tecnologia, so realmente vrias tecnologias conhecidas trabalhando juntas, cada uma fazendo sua parte, oferecendo novas funcionalidades. AJAX incorpora em seu modelo.:

Apresentao baseada em padres, usando XHTML e CSS; Exposio e interao dinmica usando o DOM; Intercmbio e manipulao de dados usando XML e XSLT; Recuperao assncrona de dados usando o objeto XMLHttpRequest; e JavaScript unindo todas elas em conjunto.

Tpicos Especiais Internet/Php/MySql

O modelo clssico de aplicao web trabalha assim: A maioria das aes do usurio na interface dispara uma solicitao HTTP para o servidor web. O servidor processa algo recuperando dados, realizando clculos, conversando com vrios sistemas legados e ento retorna uma pgina HTML para o cliente. um modelo adaptado do uso original da Web como um agente de hipertexto, porm o que faz a Web boa para hipertexto no necessariamente a faz boa para aplicaes de software. Esta aproximao possui muito dos sentidos tcnicos, mas no faz tudo que um usurio experiente poderia fazer. Enquanto o servidor est fazendo seu trabalho, o que o usurio estar fazendo? O que certo, esperando. E a cada etapa em uma tarefa, o usurio aguarda mais uma vez. Obviamente, se ns estivssemos projetando a Web a partir do zero para aplicaes, no faramos com que os usurios esperassem em vo. Uma vez que a interface est carregada, por que a interao do usurio deveria parar a cada vez que a aplicao precisasse de algo do servidor? Na realidade, por que o usurio deveria ver a aplicao ir ao servidor toda vez? A maior vantagem das aplicaes AJAX que elas rodam no prprio navegador web. Ento, para estar hbil a executar aplicaes AJAX, bastar possuir algum dos navegadores modernos, ou seja, lanados aps 2001. So eles: Mozilla Firefox, Internet Explorer 5+, Opera, Konqueror e Safari.
Fonte: http://pt.wikipedia.org/wiki/AJAX(programao) em 01/09/2008

ESTRUTURA BSICA DAS TAGS DE UM DOCUMENTO HTML


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>DIGITE O TTULO DA PGINA AQUI</title> </head> <body> <!--AQUI VAI TODO O CONTEDO DA PGINA--> </body> </html>

TAGS HTML BSICAS <!DOCTYPE html PUBLIC .....> Especificao do tipo de documento html <head> Cabealho do documento; <title> Ttulo do documento; <body> Corpo do documento Vejamos agora as principais tags de formataes que iremos usar no decorrer do nosso curso: DETALHE: Essas tags devero ficar sempre dentro da tag body e sempre devero ser finalizadas!

Tpicos Especiais Internet/Php/MySql

CENTRALIZANDO <center> (texto, imagens, qualquer coisa) <center>Curso PHP</center> Lembrete: Para centralizar este texto, teremos que colocar esta tag dentro da tag: <body> <center>Curso PHP</center> </body> Todas essas formataes abaixo devero ficar dentro da tag body. NEGRITO <b> <b>Fucapi</b> ITLICO <i> <i>Fucapi</i> TEXTO TACHADO <strike> <strike>Fucapi </strike> SUBLINHADO <u> <u>Fucapi </u> PARGRAFO Linha 1 <p/> Linha 2 Essa tag no precisa ser fechada! SALTO DE LINHA SIMPLES <br> <br/> Linha 1 <br/> Linha 2 Tambm no precisa ser fechada. ALTERANDO CORES E TAMANHO DA FONTE Veremos como ficaria para escrever o texto BOM DIA nas seguintes formataes: Fonte vermelha, tamanho 4, negrito

Tpicos Especiais Internet/Php/MySql

<font color="red" size="4"><b>BOM DIA</b></font> EXEMPLOS DE TIPOS DE FONTES: Alguns tipos de fontes mais usados: <font face="Arial">Seu texto</font> Combinando tipo de fonte (Verdana), tamanho (4) e negrito <font face="Verdana" size="4"><b>Curso PHP</b></font> INSERINDO IMAGENS E COM UMA DESCRIO AO PASSAR O MOUSE POR CIMA DA IMAGEM
Para inserir imagem utilizamos a tag <img> e o comando title exibe um texto ao passar o mouse.

Ex: <img src="/diretrio/veiculo.gif" title="Veculo vencedor!" border=0> INSERINDO LINKS EM NOSSA PGINA: Usamos a tag <a href=pagina2.html>IR PARA PGINA 2</a>. O texto IR PARA PGINA 2 servir de link para pgina 2. Tags de tamanho pr definidas pelo html: <H1> TAMANHO <H2> TAMANHO

MXIMO

GRANDE

<H3> TAMANHO MDIO <H4> TAMANHO QUASE NORMAL <H5> TAMANHO PEQUENO <H6> TAMANHO MNIMO

TABELAS
A tag <table> o elemento principal na definio de uma tabela, e tambm na definio de outros atributos especficos, que servem para dar maior controle sobre como deve ser apresentada uma tabela em uma pgina HTML. Os demais elementos da tabela so ignorados se no estiverem entre as tags <table> e </table>. Antes de falarmos sobre linhas e colunas de uma tabela, falaremos sobre os atributos da tag table. A tag <table> possui os seguintes atributos:

Tpicos Especiais Internet/Php/MySql

id="descricao" Este atributo contem uma identificao da tabela, exemplo: id=HistoricoAluno. border="valor" Este atributo pode ser utilizado para controlar as bordas de uma tabela. Se tal atributo estiver presente, ento uma borda ser desenhada em torno das clulas de toda a tabela. O valor 0 (zero) no coloca borda na tabela. A exata espessura da borda, e de como ela apresentada em um browser, s depende do prprio browser. O Netscape Navigator e o Internet Explorer apresentam as bordas de uma tabela de forma levemente difenciada. cellspacing="valor" O atributo CELLSPACING define a quantidade de espao inserido entre clulas individuais da tabela. Seu valor padro de 2. cellpadding="valor" O atributo CELLPADDING define a quantidade de espao em branco entre as bordas da tabela e o contedo de cada clula (texto ou imagem). O valor padro 1. Exemplo desses 4 atributos: <table border="0" id=tabela1 cellspacing="0" cellpadding="0"> Isso resulta em uma representao da tabela com o formato o mais compacto possvel. Outros atributos da tag table: width="valor ou porcentual" Se utilizado, tal atributo pode especificar o tamanho exato da largura da tabela, medida em pixels, ou a largura da tabela como uma porcentagem da largura atual da janela do browser. O mais aconselhvel usar com tamanho em %, devido a certos usurios usarem o tamanho da tela 800 x 600 e outros usarem 1024 x 768, ento voc define tamanho 100%, logo a tabela atingir 100% da tela do usurio, no importando a resoluo de vdeo que ele estiver usando. Se utilizado, tal atributo pode especificar o tamanho exato da altura da tabela, medida em pixels, ou a altura da tabela como uma porcentagem da altura atual da janela do browser. align="left, right ou center" O atributo ALIGN, suportado tanto pelo Netscape, quanto pelo Explorer, permite que a tabela seja alinhada esquerda, direita ou centralizada na pgina. bgcolor="#rrggbb (cd. cor) ou nome_da_cor(red, blue, etc)"

Tpicos Especiais Internet/Php/MySql

10

Tal como nos casos acima, o atributo BGCOLOR suportado pelos dois browsers. Esse atributo permite que se especifique a cor de fundo da tabela. Para tal pode-se dar um valor em hexadecimal (ex.: FF0000 para o vermelho) ou dar o nome da cor desejada. bordercolor="#rrggbb ou nome_da_cor" O Internet Explorer suporta um atributo extra que permite setar a cor em que a borda dever ser mostrada pelos browsers. Segue a mesma conveno para os casos acima. Para que o atributo BORDERCOLOR funcione necessria a presena do atributo BORDER no tag <TABLE>.

LINHAS E COLUNAS DE UMA TABELA A tag <table> assinala o incio de uma tabela (na qual ser necessrio definir as respectivas linhas e colunas) e, tal como a maioria das tags HTML, a tag </table > assinala o fim da mesma. Para definir as linhas que compem a tabela utiliza-se a tag <tr> (que termina com </tr>); a definio das colunas, que deve estar dentro da definio da linha, faz-se atravs da tag <td> (que termina com </td>). Apresentamos, em seguida, o exemplo de uma tabela simples e tradicional composta por 3 linhas e 2 colunas.

<table width=20% id=tab1 align=center border=1> <tr> <td>Linha1Coluna1</td> <td>Linha1Coluna2</td> </tr> <tr > <td>Linha2Coluna1</td> <td>Linha2Coluna2</td> </tr> <tr > <td>Linha3Coluna1</td> <td>Linha3Coluna2</td> </tr> </table>

Veja o resultado:

Tpicos Especiais Internet/Php/MySql

11

MESCLAGEM DE CLULAS Em muitos casos voc precisar mesclar determinadas clulas da tabela, o cdigo abaixo ir mesclar a terceira linha de nossa tabela, veja como fica a tabela com a clula mesclada:

Usamos para mesclar COLUNAS a tag colspan seguido do valor, ou seja, a quantidade de clulas que queremos mesclar, neste caso, foi preciso mesclar duas colunas, ento colspan="2", veja o cdigo completo: <table border="1"> <tr> <td>Linha1Coluna1</td> <td>Linha1Coluna2</td> </tr> <tr > <td>Linha2Coluna1</td> <td>Linha2Coluna2</td> </tr> <tr > <td colspan="2">Linha3 Mesclada</td> </tr> </table>

Repare que a tag colspan fica dentro da tag td, que significa coluna. Agora queremos centralizar a clula que foi mesclada:

Basta colocar a tag center: align="center" Cdigo completo:

Tpicos Especiais Internet/Php/MySql

12

<table border="1"> <tr> <td>Linha1Coluna1</td> <td>Linha1Coluna2</td> </tr> <tr > <td>Linha2Coluna1</td> <td>Linha2Coluna2</td> </tr> <tr > <td colspan="2" align="center">Linha3 Mesclada</td> </tr> </table>

Acabamos de mesclar duas colunas, agora queremos mesclar determinadas linhas, vamos mesclar as 3 linhas da coluna 1:

Para mesclar linhas, usamos a tag rowspan="valor", veja o cdigo completo:

<table border="1"> <tr> <td rowspan="3">Clulas Mescladas</td> <td>Linha1Coluna2</td> </tr> <tr > <td>Linha2Coluna2</td> </tr> <tr > <td>Linha3Coluna2</td> </tr> </table>

Lembrando: colspan - mescla colunas

Tpicos Especiais Internet/Php/MySql

13

rowspan - mescla linhas. De acordo com atualizaes de tag's e novos padres da w3c e xhtml, foram includos novos atributos em tabelas, veja um exemplo de uma estrutura de tabela de acordo com os padres atuais da web. <table width=20% id=TabListagem align=center border=1> <caption>Listagem de Ocorr&ecirc;ncias</caption> <thead> <tr> <th width="90">Data</th> <th width="50">Atrasos</th> <th width="50">Faltas</th> <th width="50">Abonos</th> </tr> </thead> <tbody> <tr> <td align="center">20/06/2006</td> <td align="center">09:00</td> <td align="center">17:00</td> <td>Abono Chefia</td> </tr> </tbody> </table>

INSERINDO FORMULRIO Por ser uma linguagem de marcao, a sintaxe do HTML na maioria dos casos exige uma tag de incio e uma de final daquele bloco. Exatamente isso que ocorre com a definio de um formulrio: uma tag no incio e outra no final, sendo que todos os elementos do formulrio devem

Tpicos Especiais Internet/Php/MySql

14

estar entre as duas tags. Isto torna possvel a incluso de mais de um formulrio num mesmo html. As tags citadas so: <form name= action= method= > </form> Onde temos: name: o identificador do formulrio; action: nome do script que receber os dados do formulrio ao ser submetido. Mais frente esto abordadas as maneiras de tratar esses dados recebidos; method: mtodo de envio dos dados: get ou post; Exemplo: <form name=formcadastro action="recebedados.php" method="post"> (textos e elementos do form) campos; botes; selects; ... </form> Cada elemento do formulrio deve possuir um nome que ir identific-lo no momento em que o script indicado no ACTION for tratar os dados. INSERINDO INPUT'S A tag <input> Muitos elementos de um formulrio html so definidos pela tag <input>. Cada tipo de elemento possui parmetros prprios, mas todos possuem pelo menos dois parmetros em comum: type, que define o tipo de elemento, e name, que como j foi dito define o nome daquele elemento. Usaremos tambm, o parmetro id, que receber o mesmo valor dado ao name. A partir de agora tambm usaremos este novo parmetro obdecendo as normas e regras do XHTML, que tambm uma linguagem de marcao assim como o html, no futuro, as novas geraes de browses (navegadores) identificaro os nomes dos inputs somente atravs do id. Campo de texto (type="text") <input type="text" name="idade" id="idade" value="" size="5" maxlength="3">

O campo mais comum em formulrios. Exibe na tela um campo para entrada de texto com apenas uma linha. Parmetros: Value o valor pr-definido do elemento, que aparecer quando a pgina for carregada; Size O tamanho do elemento na tela, em caracteres; Maxlength O tamanho mximo do texto contido no elemento, em caracteres; Campo de texto com mscara (input type="password") <input type="password" name="senha" id="senha" size="" maxlength="">

Tpicos Especiais Internet/Php/MySql

15

Tipo de campo semelhante ao anterior, com a diferena que neste caso os dados digitados so substitudos por asteriscos, e por isso so os mais recomendados para campos que devam conter senhas. importante salientar que nenhuma criptografia utilizada. Apenas no aparece na tela o que est sendo digitado. Parmetros: Size O tamanho do elemento na tela, em caracteres; Maxlength O tamanho mximo do texto contido no elemento, em caracteres; Checkbox (type="checkbox") <input type="checkbox" name="" id="" value="" checked> Utilizado para campos de mltipla escolha, onde o usurio pode marcar mais de uma opo.

Parmetros: Value o valor que ser enviado ao servidor quando o formulrio for submetido, no caso do campo estar marcado Checked O estado inicial do elemento. Quando presente, o elemento j aparece marcado;

Radio Button (type="radio") <input type="radio" name="" id="" value="" checked> Utilizado para campos de mltipla escolha, onde o usurio pode marcar apenas uma opo. Para agrupar vrios elementos deste tipo, fazendo com que eles sejam exclusivos, basta atribuir o mesmo nome a todos do grupo.

Parmetros: Value o valor que ser enviado ao servidor quando o formulrio for submetido, no caso do campo estar marcado. Checked O estado inicial do elemento. Quando presente, o elemento j aparece marcado; Submit Button (type="submit") <input type="submit" name="btenviar" id=" btenviar " value="Enviar"> Utilizado para enviar os dados do formulrio para o script descrito na seo action da definio do formulrio.

Tpicos Especiais Internet/Php/MySql

16

Parmetros: Value o texto que aparecer no corpo do boto.

Reset Button (type="reset") <input type="reset" name="btlimpar" id=" btlimpar " value="Limpar Campos"> Utilizado para fazer com que todos os campos do formulrio retornem ao valor original, quando a pgina foi carregada. Bastante utilizado como boto limpar, mas na realidade s limpa os campos se todos eles tiverem como valor uma string vazia.

Parmetros: Value - o texto que aparecer no corpo do boto.

Button (type="button") <input type="button" name="btcadalunos" value="Cadastrar Alunos"> Utilizado normalmente para ativar funes de scripts client-side (JavaScript, por exemplo), e criar links para outras pginas. Sem essa utilizao, no produz efeito algum.

Parmetros: Value - o texto que aparecer no corpo do boto. TextArea <textarea cols="2" rows="7" name="mensagem">texto</textarea> Exibe na tela uma caixa de texto, com o tamanho definido pelos parmetros cols e rows.

Parmetros: Cols nmero de colunas do campo, em caracteres; Rows nmero de linhas do campo, em caracteres;

Tpicos Especiais Internet/Php/MySql

17

Value O elemento do tipo textarea no possui o parmetro value. O valor prdefinido do campo o texto que fica entre as tags <textarea> e </textarea>.

Select <select name="estcivil"> <option value="">texto</option> </select> Se o parmetro size tiver o valor 1 e no houver o parmetro multiple, exibe na tela uma combo box. Caso contrrio, exibe na tela uma select list

Parmetros: Size nmero de linhas exibidas. Default: 1; Multiple parmetro que, se presente, permite que sejam selecionadas duas ou mais linhas, atravs das teclas Control ou Shift; Option Cada item do tipo option acrescenta uma linha ao select; Value Valor a ser enviado ao servidor se aquele elemento for selecionado. Default: o texto do item; Text Valor a ser exibido para aquele item. No definido por um parmetro, mas pelo texto que fica entre as tags <option> e </option>. Fieldset <fieldset> <legend>DADOS PESSOAS</legend> Nome: <input type="text" name="name" size="10"><br> Cpf: <input type="text" name="cpf" size="10"><br> </fieldset>

COMENTRIOS EM HTML Veja um exemplo de comentrios em html:

<!-- Isto um comentrio em html -->

MENSAGENS EM JAVASCRIPT Iremos usar bastante as famosas caixas alert em javascript para exibir mensagens de SUCESSO OU FALHAS EM INSERES, UPDATES, etc. <script> alert('Registro Inserido com Sucesso!'); </script>

Folha de Estilos - CSS (Cascading Style Sheet)

Tpicos Especiais Internet/Php/MySql

18

(cores, fontes, fundo, margem) Se voc se interessa pela criao de home pages j deve ter ouvido falar em Cascading Style Sheets, ou CSS apenas. Trata-se de um padro de formatao para pginas web. O Cascading Style Sheet(CSS) permite uma versatilidade maior na programao do layout de pginas web sem aumentar o seu tamanho em Kb, pois oferece vrias possibilidades que antes s eram conseguidas com a utilizao de gifs e jpgs. Basicamente, o CSS permite ao designer um controle maior sobre os atributos de uma home page, como tamanho e cor das fontes, espaamento entre linhas e caracteres, margem do texto, caixas de texto, botes de formulrio, entre outros. A tag de folha de estilo deve ficar dentro da tag head, vejamos um exemplo: <style type="text/css"> .caixa { font-family: Arial; font-size: 12px; color: #FF0000; font-weight: normal; font-style: italic; text-decoration: underline;
background-color: blue;

} </style>

Iremos utilizar CSS em nosso projeto final, vejamos um exemplo completo de CSS junto ao input type text:

<html> <head> <title>Usando CSS</title> </head> <style type="text/css"> .inputtext { font-family: Arial, Helvetica, sans-serif; font-size: 12px; font-weight: bold; color: #FFFFFF; background-color: blue; border: 1px solid #000000; }

Tpicos Especiais Internet/Php/MySql .botaook { font-family: Arial, Helvetica, sans-serif; font-size: 10px; font-weight: bold; color: #FFFFFF; background-color: #333333; border: 1px #003399; } </style>

19

<body> NOME DO CLIENTE: <input type="text" name="nomecli" class="inputtext" size="25"> <p> <input type="submit" name="btenviar" class="botaook" value="CADASTRAR"> </body> </html>

Veja o resultado do script:

Outra alternativa para incluso de folha de estilos nas pginas html, atravs de links css, inserido entre as tags head, veja o exemplo: <head> <title>::..SPE..::</title> <link rel="stylesheet" type="text/css" href="css/layout.css" /> </head> Neste caso temos uma folha de estilos em um arquivo separado chamado layout.css que est dentro da pasta css, aconselhvel criar folhas de estilos em arquivos isolados.

Tpicos Especiais Internet/Php/MySql

20

Programao em PHP

O que PHP?
PHP(Hypertext Preprocessor) uma linguagem que permite criar sites WEB dinmicos, possibilitando uma interao com o usurio atravs de formulrios, parmetros da URL e links. A diferena de PHP com relao a linguagens semelhantes a Javascript que o cdigo PHP executado no servidor, sendo enviado para o cliente apenas html puro. Desta maneira possvel interagir com bancos de dados e aplicaes existentes no servidor, com a vantagem de no expor o cdigo fonte para o cliente. Isso pode ser til quando o programa est lidando com senhas ou qualquer tipo de informao confidencial.

O que pode ser feito com PHP?


Basicamente, qualquer coisa que pode ser feita por algum programa CGI pode ser feita tambm com PHP, como coletar dados de um formulrio, gerar pginas dinamicamente ou criar e destruir sesses nos navegadores. PHP tambm tem como uma das caractersticas mais importantes o suporte a um grande nmero de bancos de dados, como dBase, Interbase, mSQL, mySQL, Oracle, Sybase, PostgreSQL e vrios outros. Construir uma pgina baseada em um banco de dados torna-se uma tarefa simples com PHP, bastando apenas seguir algumas umas regras.

Enviando dados para o servidor HTTP


Programar para a web pode ser considerado como um jogo que consiste em

Tpicos Especiais Internet/Php/MySql

21

receber os dados do usurio, process-los e enviar a resposta dinmica. Uma vez enviada a resposta, encerrado o contato entre o servidor e o cliente. Portanto a primeira coisa a aprender como fazer para receber os dados enviados pelo browser para o servidor. O protocolo HTTP prov dois principais mtodos para enviar informaes para o servidor web, alm da URL referente ao arquivo solicitado. Esses mtodos so o POST e o GET.

Os mtodos GET e POST


O HyperText Transfer Protocol (Protocolo de Transferncia de Hipertexto HTTP) o protocolo de comunicao utilizado para a troca de dados entre um navegador e um servidor web. o protocolo de comunicao que voc aciona quando digita um endereo no seu navegador: http://www... para isto que existem os mtodos HTTP. Dois desses mtodos, associados transferncia de dados de formulrios, so muito importantes: o mtodo GET e o mtodo POST. POST envia em nvel de ambiente e as variveis no ficam disponveis visivelmente. GET envia as variveis atravs da URL, ficando disponveis no endereo da pgina. Se voc for fazer uma autenticao de usurio, por exemplo, no utilize o mtodo GET para o envio do formulrio, porque os dados de login ficaro visveis na URL. Teramos algo como: http://localhost/valida.php?senha=ceef&login=200854999. J no caso de uma pgina de pesquisa, faz mais sentido usar o mtodo GET. http://localhost/busca.php?procura=php Para visualizar melhor essa diferena entre o GET E O POST, vamos criar duas pginas em php. A pagina1.php ir ter 2 inputs type text: valor1 e valor2 e um boto submit. A pagina2.php ir receber essas variveis. No esquea do form na pagina1.php. Delimitando o cdigo PHP O cdigo PHP fica embutido no prprio HTML. O interpretador identifica quando um cdigo PHP pelas seguintes tags: <?php comandos ?> ou <? comandos ?> Separador de instrues Entre cada instruo em PHP preciso utilizar o ponto-e-vrgula, assim como em C, Perl e outras linguagens mais conhecidas. Na ltima instruo do bloco de script no necessrio o uso do ponto-e-vrgula, mas por questes estticas recomenda-se o uso

Tpicos Especiais Internet/Php/MySql

22

sempre. Nomes de variveis Toda varivel em PHP tem seu nome composto pelo caracter $ e uma string, que deve iniciar por uma letra ou o caracter _. PHP case sensitive, ou seja, as variveis $fucapi e $FUCAPI so diferentes. Por isso preciso ter muito cuidado ao definir os nomes das variveis. bom evitar os nomes em maisculas, pois como veremos mais adiante, o PHP j possui algumas variveis pr-definidas cujos nomes so formados por letras maisculas. Exemplo de uma varivel: $veiculo = Fusca; //a varivel veiculo tem o valor Fusca $veiculo = Brasilia;//agora a varivel veiculo tem o valor Brasilia No PHP no h necessidade de declarar antes a varivel, em outras linguagens de programao, voc deveria declarar a varivel veculo, antes de atribuir qualquer valor a ela. O php trata isso de forma dinmica, ao atribuir um valor a uma varivel, a mesma j criada. Declarao de uma varivel Como a tipagem em PHP dinmica, as variveis no precisam ser declaradas. Uma varivel inicializada no momento em que feita a primeira atribuio. O tipo da varivel ser definido de acordo com o valor atribudo. Comentrios H dois tipos de comentrios em cdigo PHP: Comentrios de uma linha: Marca como comentrio at o final da linha ou at o final do bloco de cdigo PHP o que vier antes. Pode ser delimitado pelo caracter # ou por duas barras ( // ). Exemplo: <? echo teste; #isto um teste ?> <? echo teste; //este teste similar ao anterior ?> (+ usado) Comentrios de mais de uma linha: Tem como delimitadores os caracteres /* para o incio do bloco e */ para o final do comentrio. Se o delimitador de final de cdigo PHP ( ?> ) estiver dentro de um comentrio, no ser reconhecido pelo interpretador. Exemplos: <? echo teste; /* Isto um comentrio com mais de uma linha, mas no funciona corretamente ?> */

Tpicos Especiais Internet/Php/MySql

23

<? echo teste; /* Isto um comentrio com mais de uma linha que funciona corretamente */ ?> Imprimindo cdigo html Um script php geralmente tem como resultado uma pgina html, ou algum outro texto. Para gerar esse resultado, deve ser utilizada uma das funes de impresso, echo e print. Para utiliz-las deve-se utilizar um dos seguintes formatos:
print OL MUNDO!; echo ola mundo; formatando: echo <font color='red' size='2' face='verdana'><b>FUCAPI</b></font>; Iremos utilizar por padro o echo, o mais utilizados pelos desenvolvedores.

Constantes Como voc viu anteriormente, podemos alterar o valor armazenado de uma varivel. Tambm podemos declarar constantes. Uma constante armazena um valor como uma varivel, mas seu valor configurado uma vez e, ento, no pode ser alterado em outra parte do script. Voc pode definir essas constantes utilizando a funo define: define("TOTAL",100); define("PRECO",15); Voc notou que os nomes da constante esto inteiramente em letras maisculas. Essa uma conveno emprestada de C que facilita distinguir rapidamente entre variveis e constantes. Essa conveno no necessria mas facilitar a leitura e manuteno do cdigo. Uma diferena importante entre constantes e variveis que quando voc referencia a uma constante, ela no tem um sinal de cifro na sua frente. Se quiser utilizar o valor de uma constante, utilize somente seu nome. Por exemplo, para utilizar uma das constantes que acabamos de criar, poderamos digitar: echo TOTAL; Execute este exemplo de constante: <?php define("VALOR",100); define("VALOR",150); //tentando trocar o valor de 100 para 150 echo VALOR; //imprimir 100 ?>

Tipos em Php

Tpicos Especiais Internet/Php/MySql

24

Tipos Suportados PHP suporta os seguintes tipos de dados:

Integer (Inteiro) - Utilizado para nmeros inteiros Double (Dupla preciso) - Utilizado para nmeros reais Strings - Utilizado para strings de caracteres Array (Vetor) - Utilizado para armazenar mltiplos itens de dados do mesmo tipo Object (Objeto) - Utilizado para armazenar instncias de classes.

PHP utiliza checagem de tipos dinmica, ou seja, uma varivel pode conter valores de diferentes tipos em diferentes momentos da execuo do script. Por este motivo no necessrio declarar o tipo de uma varivel para us-la. O interpretador PHP decidir qual o tipo daquela varivel, verificando o contedo em tempo de execuo. Strings Strings podem ser atribudas de duas maneiras: 1. utilizando aspas simples ( ' ) - Desta maneira, o valor da varivel ser exatamente o texto contido entre as aspas (com exceo de \\ e \' ) 2. utilizando aspas duplas ( " ) - Desta maneira, qualquer varivel ou caracter de escape ser expandido antes de ser atribudo. Exemplo:
<?php $escola = "Fucapi"; $viva = '---$escola---'; echo "$viva"; echo "<br>"; ?> <?php $escola = "Fucapi"; $viva = "---$escola---"; echo "$viva"; ?> A sada desses scripts ser: ---$escola-----Fucapi---

Funes para manipular strings Em muitas aplicaes que voc escrever na linguagem PHP, haver a necessidade de manipular ou analisar strings. Para ajudar nessa tarefa, a linguagem PHP dispe de vrias funes teis para manipular strings. Abaixo voc poder ver uma lista dessas funes e aprender a utilizar cada uma delas.

substr()

Tpicos Especiais Internet/Php/MySql

25

A funo substr() utilizada para procurar uma substring (parte ou pedao de uma string). Quando o script chama essa funo ela retorna parte de uma string. Essa funo recebe trs argumentos (sendo que dois so obrigatrios e um opcional). O primeiro argumento a string que ser analisada, o segundo argumento a posio de onde comear a retornar a string e o terceiro argumento opcional o nmero de caracteres que a funo deve retornar. Lembre-se que a posio do primeiro caractere de uma string sempre 0. Observe alguns exemplos abaixo:
<?php // Esse exemplo ir imprimir "rasil". echo (substr("Brasil", 1)); ?> <?php // Esse exemplo ir usar o terceiro argumento opcional e imprimir "ras". echo (substr("Brasil", 1, 3)); ?>

Observe que se voc utilizar no segundo argumento um nmero negativo, ele ir comear a contar a partir do final da string. chr() A funo chr() usada para transformar o cdigo ASCII no caractere correspondente. Observe o exemplo abaixo:
<?php // Esse exemplo imprimir a letra "a". echo (chr(97)); ?>

ord() A funo ord() faz o trabalho inverso da funo chr(), ou seja, voc insere o caractere e ele retorna o valor ASCII correspondente. Observe o exemplo abaixo:
<?php // Esse exemplo imprimir "97". echo (ord(a)); ?>

strlen() A funo strlen() retorna o nmero de caracteres de uma string. Observe o exemplo abaixo:
<?php / /Esse exemplo imprimir "6". echo (strlen("Brasil")); ?>

strtolower() A funo strtolower coloca a string toda em letras minsculas, veja o exmplo:
<?php $nome = "Fulano de Tal"; echo strtolower($nome); ?>

Tpicos Especiais Internet/Php/MySql

26

strtoupper() A funo strtoupper coloca a string toda em letras maisculas, veja o exmplo:
<?php $nome = "fulano de Tal"; echo strtoupper($nome); ?>

ucfirst() A funo ucfirst coloca o primeiro caracter de uma string em letra maiscula se ele for alfabtico, veja o exmplo:
<?php $nome = "fulano de tal"; echo ucfirst($nome); ?>

ucwords() A funo ucwords coloca o primeiro caracter de cada palavra em letra maiscula na string que inicia com um caracter alfabtico, veja o exmplo:
<?php $nome = "fulano de tal"; echo ucwords($nome); ?>

Manipulando o tratamento de arrays


Funes Genricas a funo que cria um array a partir dos parmetros fornecidos. possvel fornecer o ndice de cada elemento. Esse ndice pode ser um valor de qualquer tipo, e no apenas de inteiro. Se o ndice no for fornecido o PHP atribui um valor inteiro sequencial, a partir do 0 ou do ltimo ndice inteiro explicitado. Veja o exemplo: Para imprimir a partir de agora nossos arrays, iremos utilizar o comando print_r, que serve somente para imprimir arrays. print_r(array);
<?php $nomes = array("Marcelo","Sergio","Emilia","Maria","Joao"); print_r($nomes); //Criamos o vetor nomes e no definimos indices para este vetor, logo o php atribui um valor inteiro sequencial echo "<p>";
$escolas = array(5=>"Fucapi",2=>"Cesf",4=>"Ceef",1=>"Ulbra",3=>"Ufam");

print_r($escolas); //Atribuimos indices aos elementos do vetor escola echo "<p>"; $lojas = array(2=>raiuga,1=>Bemol,5=>Utilar,3=>DB,4=>Carrefour); print_r($lojas); //Sem aspas tambm funciona ?>

Tpicos Especiais Internet/Php/MySql

27

Em geral, no recomendvel utilizar arrays com vrios tipos de ndices, j que isso pode confundir o programador. No caso de realmente haver a necessidade de utilizar esse recurso, deve-se ter bastante ateno ao manipular os ndices do array. Funes para manipular Arrays sizeof Retorna um valor inteiro contendo o nmero de elementos de um array. Se for utilizada com uma varivel cujo valor no do tipo array, retorna 1. Se a varivel no estiver setada ou for um array vazio, retorna 0. Ex: <?php $teste = array("zero","um","dois","tres","quatro"); print_r($teste); //Imprimindo na tela antes de usar o sizeof echo "<p>"; echo sizeof($teste); ?>

Funes de "navegao"
Toda varivel do tipo array possui um ponteiro interno indicando o prximo elemento a ser acessado no caso de no ser especificado um ndice. As funes seguintes servem para modificar esse ponteiro, permitindo assim percorrer um array para verificar seu contedo (chaves e elementos). reset Seta o ponteiro interno para o primeiro elemento do array, e retorna o contedo desse elemento. Ex: <?php $teste = array("zero","um","dois","tres","quatro"); print_r($teste); echo reset($teste); ?> end Seta o ponteiro interno para o ltimo elemento do array, e retorna o contedo desse elemento. Ex: <?php $frutas = array('melancia', 'banana', 'morango'); print_r ($frutas); print "<p>"; print end($frutas); // morango ?>

Tpicos Especiais Internet/Php/MySql

28

next Seta o ponteiro interno para o prximo elemento do array, e retorna o contedo desse elemento. Obs.: esta no uma boa funo para determinar se um elemento o ltimo do array, pois pode retornar false tanto no final do array como no caso de haver um elemento vazio. Ex: <?php $teste = array("zero","um","dois","tres","quatro"); print_r($teste); echo "<p>"; echo next($teste); //um ?> prev Seta o ponteiro interno para o elemento anterior do array, e retorna o contedo desse elemento. Funciona de maneira inversa a next. Veremos um exemplo usando a funo prev e algumas anteriores para entendermos melhor a navegao. <?php $transportes = array('lancha', 'bicicleta', 'carro', 'aviao'); //Nosso array print_r ($transportes); //Impressao na tela $reset = reset($transportes); // retorna o primeiro elemento do array = 'lancha'; $next1 = next($transportes); // prximo elemento do array = 'bicicleta'; $next2 = next($transportes); // prximo elemento do array = 'carro'; $prev = prev($transportes); // elemento anterior do array = 'bicicleta'; $end = end($transportes); // ltimo elemento do array = 'aviao'; echo "<p>"; echo "Imprimindo na tela:"; echo "<p>"; echo "Reset: ".$reset; echo "<br>"; echo "Next: ".$next1; echo "<br>"; echo "Next: ".$next2; echo "<br>"; echo "Prev: ".$prev; echo "<br>"; echo "End: ".$end; echo "<br>"; ?> pos Retorna o contedo do elemento atual do array, indicado pelo ponteiro interno. Ex: <?php $transportes = array('lancha', 'bicicleta', 'carro', 'aviao'); print_r ($transportes); $reset = reset($transportes); //= 'lancha'; $next1 = next($transportes); //= 'bicicleta'; $next2 = next($transportes); //= 'carro'; $prev = prev($transportes); //= 'bicicleta'; $end = end($transportes); //= 'aviao'; $pos = pos($transportes); //= 'aviao';

Tpicos Especiais Internet/Php/MySql

29

echo "<p>"; echo "Lembrando as funes anteriores:"; echo "<p>"; echo "Reset: ".$reset; echo "<br>"; echo "Next: ".$next1; echo "<br>"; echo "Next: ".$next2; echo "<br>"; echo "Prev: ".$prev; echo "<br>"; echo "End: ".$end; echo "<br>"; echo "Pos: ".$pos; echo "<br>"; ?> Funes de ordenao So funes que servem para arrumar os elementos de um array de acordo com determinados critrios. Estes critrios so: manuteno ou no da associao entre ndices e elementos; ordenao por elementos ou por ndices; funo de comparao entre dois elementos. sort A funo mais simples de ordenao de arrays. Ordena os elementos de um array em ordem crescente, sem manter os relacionamentos com os ndices. Ex: <?php $teste = array("Dia","Mes","Zebra","Php","Aula"); echo "Array antes da ordenao:<br>"; print_r ($teste); sort($teste); echo "<p>"; print_r ($teste); echo "<p>"; echo "Ordena em ordem crescente, SEM manter relacionamento com os indices."; //Array ( [0] => Aula [1] => Dia [2] => Mes [3] => Php [4] => Zebra ) ?> rsort Funciona de maneira inversa funo sort. Ordena os elementos de um array em ordem decrescente, sem manter os relacionamentos com os ndices. Ex: <?php $teste = array("cd","dvd","gravador","hd","vcd"); echo "Array antes da ordenao:<br>"; print_r ($teste); rsort($teste); //ordenando echo "<p>"; print_r($teste); echo "<p>"; echo "Ordena em ordem decrescente, SEM manter relacionamento com os ndices.";

Tpicos Especiais Internet/Php/MySql

30

//Array ( [0] => vcd [1] => hd [2] => gravador [3] => dvd [4] => cd ) ?> asort Tem o funcionamento bastante semelhante funo sort. Ordena os elementos de um array em ordem crescente, porm mantm os relacionamentos com os ndices. Ex: <?php $teste = array("Jakeline","Carla","Ariane","Vanessa","Giovanna"); echo "Array antes da ordenao:<br>"; print_r($teste); asort($teste); print_r($teste); echo "<p>"; echo "Ordena em ordem crescente, MANTEM relacionamento com os indices. Reparem nos indices.";
//Array ( [2] => Ariane [1] => Carla [4] => Giovanna [0] => Jakeline [3] => Vanessa )

?> arsort Funciona de maneira inversa funo asort. Ordena os elementos de um array em ordem decrescente e mantm os relacionamentos dos elementos com os ndices. Ex: <?php $teste = array("Jakeline","Carla","Ariane","Vanessa","Giovanna"); echo "Array antes da ordenao:<br>"; print_r($teste); arsort($teste); print_r($teste); echo "<p>"; echo "Ordena em ordem decrescente, MANTEM relacionamento com os indices. Reparem nos indices.";
//Array ( [3] => Vanessa [0] => Jakeline [4] => Giovanna [1] => Carla [2] => Ariane )

?> ksort Funo de ordenao baseada nos ndices. Ordena os elementos de um array de acordo com seus ndices, em ordem crescente, mantendo os relacionamentos. Ex: <?php $teste = array (4=>"Jakeline",1=>"Carla",3=>"Ariane",2=>"Vanessa",0=>"Giovanna"); echo "Array antes da ordenao:<br>"; print_r($teste); ksort($teste); print_r($teste);
//Array ( [0] => Giovanna [1] => Carla [2] => Vanessa [3] => Ariane [4] => Jakeline )

?>

Tpicos Especiais Internet/Php/MySql

31

Trabalhando com datas no PHP - funo date() Veremos agora sobre como trabalhar com datas utilizando a linguagem PHP. A funo date() tem por finalidade formatar a data e a hora local. Segue abaixo uma pequena tabela com algumas formataes aceitas por essa funo: Formato Descrio d Dia do ms com 2 dgitos D Representao textual do dia m Representao numrica do ms M Representao textual do ms y Representao do ano com 2 dgitos Y Representao do ano com 4 dgitos l (L minsculo) Descrio do dia da semana h Formato em 12 horas H Formato em 24 horas i Minutos s Segundos Outras formataes, consultar o manual do PHP em http://www.php.net Exemplos: 1) Exibindo a data no formato 11/12/2004. <? //FUNO DATE() echo date("d/m/Y"); ?> 2) Exibindo a data e a hora no formato 14/02/2004 21:04:02 <? //FUNO DATE() echo $data = date("d/m/Y H:i:s "); ?> Por ventura, voc queira desmembrar a data, pode-se usar assim: <?php $data = getdate(); $dia = $data["mday"]; $mes = $data["mon"]; $ano = $data["year"]; $data = $dia."/".$mes."/".$ano; echo $data; ?> Quando formos armazenar data no banco de dados, teremos que usar o formato DATE do MySql, o formato date, obedece o padro americano ANO-MS-DIA. Ex: 2005-06-22. Diante disto, teremos que tratar nossa data(DD/MM/AAAA) antes de inserir no banco.

Tpicos Especiais Internet/Php/MySql

32

Iremos utilizar a funo explode. Veja um exemplo. <input name=campodata value=22/06/2005> $campodata = explode("/", $_POST["campodata"]); A funo EXPLODE retorna um array(vetor) de 3 posies, temos que organizar para o padro americano antes de inserir no banco: O dia a posio 2; o ms posio 1 e o ano posio 0. $campodata[2]-$campodata[1]-$campodata[0]

Operadores em Php
Operadores Aritmticos Os operadores aritmticos so muito simples e diretos - eles so simplesmente os operadores matemticos normais. Os operadores aritmticos so mostrados abaixo:
Operador + * / % Nome Adio Subtrao Multiplicao Diviso Mdulo Exemplo $a + $b $a - $b $a * $b $a / $b $a % $b

Exemplo de uso desses operadores: <?php $a = 50; $b = 2; $soma = $a + $b; echo "Operadores Aritmeticos<p>"; echo "A = 50<br>"; echo "B = 2<p>"; echo "A + B = ".$soma."<p>"; $sub = $a - $b; echo "A - B = ".$sub."<p>"; $mult = $a * $b; echo "A * B = ".$mult."<p>"; $div = $a / $b; echo "A / B = ".$div."<p>"; $resto = $a % $b; echo "A % B = ".$resto."<p>"; ?>

Tpicos Especiais Internet/Php/MySql

33

Operadores de strings Voc pode utilizar o operador de concatenao de string para juntar duas string e gerar e armazenar um resultado da mesma maneira como voc utilizaria o operador de adio para somar dois nmeros: <?php $a = Fundacao; $b = Fucapi; $result = $a.$b; $result2 = $a." ".$b; //Espao entre as palavras echo $result; echo "<br>"; echo $result2; ?> Operadores de Pr e Ps-Incremento e Decremento Podem ser utilizados de duas formas: antes ou depois da varivel. Quando utilizado antes, retorna o valor da varivel antes de increment-la ou decrement-la. Quando utilizado depois, retorna o valor da varivel j incrementado ou decrementado. Exemplo: <?php echo "Operadores de Pre e Pos Incremento e Decremento<p>"; $a = $b = 10; echo "Passo 1<br>"; echo "A = $a<br>"; // = 10 echo "B = $b<p>"; // = 10 At aqui s atribuindo o valor $c = $a++; /* C est recebendo a varivel A que 10 e a varivel A esta sendo incrementada, notem o incremento DEPOIS da var*/ echo "Passo 2<br>"; echo "C = $c<br>"; // = 10 echo "A = $a<p>"; // = 11 $d = ++$b; //Reparem o incremento antes da varivel B e D j vai receber B incrementado echo "Passo 3<br>"; echo "D = $d<br>"; // = 11 echo "B = $b<br>"; // = 11 ?>

Tpicos Especiais Internet/Php/MySql

34

Operadores de Igualdade O operador de comparao de igualdade, = = (dois sinais de igual) permite testar se dois valores so iguais. Por exemplo, poderamos utilizar a expresso. $a = = $b Para testar se os valores armazenados em $a e $b so os mesmos. O resultado retornado por essa expresso ser true se eles forem iguais ou false se eles no forem iguais. fcil confundir isso com =, o operador de atribuio.
Operador == === != <> < > <= >= Nome Igual a Idntico a No igual a $ No igual a $ Menor que Maior que Menor que ou igual a O maior que ou igual a Utilizao $a = = $b $a = = = $b $a != $b $a <> $b $a < $b $a > $b $a <= $b $a >= $b

Estruturas de Controle Blocos Um bloco consiste de vrios comandos agrupados com o objetivo de relacion-los com determinado comando ou funo. Em comandos como if, for, while, switch e em declaraes de funes blocos podem ser utilizados para permitir que um comando faa parte do contexto desejado. Blocos em PHP so delimitados pelos caracteres { e }. A utilizao dos delimitadores de bloco em uma parte qualquer do cdigo no relacionada com os comandos citados ou funes no produzir efeito algum, e ser tratada normalmente pelo interpretador. Exemplo: if ($x == $y) comando1; comando2; Para que comando2 esteja relacionado ao if preciso utilizar um bloco: if ($x == $y) { comando1; comando2; }
Veja outro exemplo:

<?php $a = 10;

Tpicos Especiais Internet/Php/MySql

35

$b = 20; if ($a == $b) { echo "A e B Sao iguais!"; } else { echo "A e B Sao diferentes!"; } echo "<p>"; $c = 15; $d = 15; if ($c != $d) //Ta perguntando: Se NO IGUAL { echo "C e D Sao diferentes"; } else { echo "C e D Sao Iguais"; } ?>

A seguir, temos um exemplo do comando if utilizado com else if e and: if ($docencia == 'Iniciante' and $titulacao == 'Doutor') { $totaldiurno = $chdiurno * $di_diurno; $aux2 = $totaldiurno / $qtdemeses; $totalmensald = ($aux2*100) / 100; $aux = $chdiurno / 22; } else if ($docencia == 'Iniciante' and $titulacao == 'Especialista' ) { $totaldiurno = $chdiurno * $ei_diurno; $aux2 = $totaldiurno / $qtdemeses; $totalmensald = ($aux2*100) / 100; $aux = $chdiurno / 22; $chsemanal1 = ($aux*100) / 100; } O exemplo acima tem dois blocos, no primeiro if testa se duas condies so verdadeiras, se for executa os clculos contidos no bloco. O segundo testa outra condio, se tambm as duas condies forem verdadeiras executa os clculos do bloco. Se no satisfazerem nem uma ou nem outra condio executa o seno (else). Em determinadas situaes necessrio fazer mais de um teste, e executar condicionalmente diversos comandos ou blocos de comandos.

Tpicos Especiais Internet/Php/MySql

36

switch O comando switch atua de maneira semelhante a uma srie de comandos if na mesma expresso. Frequentemente o programador pode querer comparar uma varivel com diversos valores, e executar um cdigo diferente a depender de qual valor igual ao da varivel. Quando isso for necessrio, deve-se usar o comando switch. O exemplo seguinte mostra dois trechos de cdigo que fazem a mesma coisa, sendo que o primeiro utiliza uma srie de ifs e o segundo utiliza switch: if ($i == 0) echo i igual a zero; elseif ($i == 1) echo i igual a um; elseif ($i == 2) echo i igual a dois; switch ($i) { case 0: print i igual a zero; break; case 1: print i igual a um; break; case 2: print i igual a dois; break; default: echo "i no igual a 0, 1 ou 2"; } importante compreender o funcionamento do switch para no cometer enganos. O comando switch testa linha a linha os cases encontrados, e a partir do momento que encontra um valor igual ao da varivel testada, passa a executar todos os comandos seguintes, mesmo os que fazem parte de outro teste, at o fim do bloco. por isso usa-se o comando break, quebrando o fluxo e fazendo com que o cdigo seja executado da maneira desejada. Veja o exemplo: switch ($i) { case 0: echo i igual a zero; case 1: echo i igual a um; case 2: echo i igual a dois; } No exemplo acima, se $i for igual a zero, os trs comandos echo sero executados. Se $i for igual a 1, os dois ltimos echo sero executados. O comando s funcionar da maneira desejada se $i for igual a 2.

Tpicos Especiais Internet/Php/MySql

37

Em outras linguagens que implementam o comando switch, ou similar, os valores a serem testados s podem ser do tipo inteiro. Em PHP permitido usar valores do tipo string como elementos de teste do comando switch. O exemplo abaixo funciona perfeitamente:
<?php //Varivel SESSION um array, neste exemplo estamos pegando na posio 1 $_SESSION['extensao'][1] = 2; switch($_SESSION['extensao'][1]) { case 0: print "Acesso permitido"; break; case 1: print "Acesso permitido"; break; case 2: print "<script>alert('Acesso No Autorizado!');location='principal.php';</script>"; exit(); break; default: print "<script>alert('Acesso No Autorizado!');location='principal.php';</script>"; exit(); break; } ?>

Se a sesso do usurio, for igual a 2 ou superior, ele no poder acessar a pgina, se for 0 ou 1 acessa normalmente e ainda imprime a mensagem Acesso permitido. Veremos mais adiante com detalhes, o uso de sesses. Sesses em php de extrema importncia para quem ir trabalhar com pginas protegidas, ou ir dar mensagens de boas vindas aos usurios. Exemplo: Ol fulano_de_tal!.

Comandos de repetio
while O while o comando de repetio (lao) mais simples. Ele testa uma condio e executa um comando, ou um bloco de comandos, at que a condio testada seja falsa. Assim como o if, o while tambm possui duas sintaxes alternativas: while (<expressao>) <comando>; while (<expressao>): <comando>; ... <comando>; endwhile; A expresso s testada a cada vez que o bloco de instrues termina, alm do teste inicial. Se no teste inicial a condio for avaliada como false, o bloco de comandos no ser executado.

Tpicos Especiais Internet/Php/MySql

38

O exemplo a seguir mostra o uso do while para imprimir os nmeros de 1 a 10: $i = 1; while ($i <=10) print $i++;

do... while O lao do..while funciona de maneira bastante semelhante ao while, com a simples diferena que a expresso testada ao final do bloco de comandos. O lao do..while possui apenas uma sintaxe, que a seguinte: do { <comando> ... <comando> } while (<expressao>); O exemplo utilizado para ilustrar o uso do while pode ser feito da seguinte maneira utilizando o do.. while: $i = 1; do { print $i++; } while ($i <= 10) for O tipo de lao mais complexo o for. Para os que programam em C, C++ ou Java, a assimilao do funcionamento do for natural. Mas para aqueles que esto acostumados a linguagens como Pascal, h uma grande mudana para o uso do for. As duas sintaxes permitidas so: for (<inicializacao>;<condicao>;<incremento>) <comando>; for (<inicializacao>;<condicao>;<incremento>) : <comando>; ... <comando>; endfor; As trs expresses que ficam entre parnteses tm as seguintes finalidades: Inicializao: comando ou sequencia de comandos a serem realizados antes do inicio do lao. Serve para inicializar variveis. Condio: Expresso booleana que define se os comandos que esto dentro do lao sero executados ou no. Enquanto a expresso for verdadeira (valor diferente de zero) os comandos sero executados.

Tpicos Especiais Internet/Php/MySql

39

Incremento: Comando executado ao final de cada execuo do lao. for( $i=1; $i<=10; $i++) { echo $i; }

Quebra de fluxo

break O comando break pode ser utilizado em laos de do, for e while, alm do uso j visto no comando switch. Ao encontrar um break dentro de um desses laos, o interpretador PHP para imediatamente a execuo do lao, seguindo normalmente o fluxo do script. $i = 1; while ($i <= 10) { print $i++; if ($i == 5) { print "<br>ACHEI! i = 5"; break; } } Funes Definindo funes As funes existem na maioria das linguagens de programao. Elas so utilizadas para separar cdigo que realiza uma tarefa nica e bem-definida. Isso torna o cdigo mais fcil de ler e permitir reutilizar o cdigo toda vez que precisarmos fazer a mesma tarefa. Uma funo um mdulo autocontido de cdigo que prescreve uma interface de chamada, realiza alguma tarefa e opcionalmente retorna um resultado. Por que voc define suas prprias funes? As funes predefinidas para PHP permitem interagir com arquivos, utilizar banco de dados e conectar-se a outros servidores. Declarar uma funo permite utilizar seu prprio cdigo da mesma maneira como as funes predefinidas. Voc simplesmente chama sua funo e fornece a ela os parmetros necessrios.

Tpicos Especiais Internet/Php/MySql

40

Estrutura bsica da funo Uma declarao cria ou declara uma nova funo. A declarao comea com a palavra-chave function, fornece o nome de funo, os parmetros necessrios e contm o cdigo que ser executado toda vez que essa funo for chamada. Eis a declarao de uma funo trivial: function nome_funcao( ) { echo "Minha funo"; } my_function( ); Nomeando sua funo A coisa mais importante a considerar ao nomear suas funes que o nome deve ser curto mas descritivo. Algumas restries so as seguintes: Sua funo no pode ter o mesmo nome que uma funo existente. Seu nome de funo somente pode conter letras. function soma() { $a=3; $b=6; $total=$a+$b; return $total; } echo soma(); Parmetros Passar um parmetro permite obter dados que foram criados fora da funo, no nosso caso abaixo chamamos as variveis $a, $b que se encontravam fora da funo. $a=9; $b=6; function soma($a,$b) { $total=$a+$b; return $total; } echo soma($a,$b);

Funo nada mais que um segmento de cdigo que somente se executa se

Tpicos Especiais Internet/Php/MySql

41

for solicitado. Ela representa uma forma simplificada de executarmos um mesmo trecho de cdigo em diversos pontos do mesmo script.

ISSET
isset - Informa se a varivel foi iniciada. Veja o exemplo:
<?php $fruta = "Maa"; //depois troque para NULL if (isset($fruta)) { echo "Varivel Existe!".$fruta; } else { echo "Varivel No existe!"; } ?>

O isset muito utilizado com form's, ou seja, ao enviar um formulrio queremos que um bloco de cdigo seja ativado, vejamos um exemplo: Crie um form com 2 inputs: um text e submit.
<form name="form1" method="post" action="?checar"> Nome da Fruta <input type="text" name="fruta" size="15"><br> <input type="submit" name="btok" value="OK"> </form>

Quando o usurio enviar o form, ser ativado este bloco PHP:


<?php //inclua este bloco aps </html> if (isset($checar)) { echo $fruta; } ?>

ATIVIDADE
1 Desenvolver uma pgina php contendo um form e dois input's type text, com os nomes: av1 e av2. Aps o usurio digitar os valores e enviar o form, um script php ir somar e calcular a mdia. OBS: Utilizar a funo isset e o resultado dever ser impresso em uma caixa alert, como mostra a figura abaixo.

Tpicos Especiais Internet/Php/MySql

42

Trabalhando com session (sesses)


Nada mais do que uma maneira de preservar (guardar, armazenar) certos dados para serem utilizados futuramente. Podemos, por exemplo, construir um website com sistema de rea restrita, ou seja, acesso a rea restrita somente aos usurios cadastrados no sistema. Quando o usurio quiser acessar a parte restrita do website ele ter que informar um usurio e senha. Agora imagine que para cada pgina da rea restrita o usurio tenha que digitar o usurio e senha! Agora se implementarmos um sistema de login com session, o usurio ter que digitar apenas uma vez o usurio e senha e pronto! A cada pgina da rea restrita que o usurio acessar o sistema faz uma verificao se o usurio est cadastrado no sistema e lhe dar permisso de acesso pgina!

session_start: inicia dados de uma sesso Comando utilizado para iniciar uma nova sesso ou iniciar uma sesso existente. Obs: necessrio declarar session_start() no incio de cada script onde for necessrio alguma informao que esteja registrada na sesso. session_destroy: encerra a sesso, eliminando todos os dados registrados

Comando utilizado para encerrar uma sesso existente. <? session_start(); // antes de destruir a sesso, necessrio efetuar o start. session_destroy(); ?>

Antes de praticar a criao de uma session, precisamos de mais alguns conceitos:

As instrues include() e require()


A instruo include() inclui e avalia o arquivo informado. A instruo require() inclui a avalia um arquivo especfico. Esses dois construtores so idnticos a exceo de como eles manipulam erros. include() produz um Warning enquanto require() produzir um Fatal Error. Em outras palavras, utilize require() se voc deseja que um arquivo faltando interrompa o processamento da pgina. include() no se comporta da mesma maneira, permitindo que o

Tpicos Especiais Internet/Php/MySql

43

script continue nessas situaes. location Seta uma determinada pgina, sua utilizao ser em conjunto com scripts em javascript.

ATIVIDADE COM SESSION Iremos simular uma checagem de login e senha, onde o usurio digita o login, senha e nvel, o script ir armazenar na session esses dados e exibir na pgina principal. Caso o usurio no esteja logado no sistema, o php no deixa ele acessar a pgina principal. Primeiro passo: Faa uma tela com o layout acima: salve com o nome de acesso.php No action do form ficar ?checar. Bloco checar:
<?php if (isset($checar)) { session_start(); $dados = array($login,$senha,$nivel); $_SESSION['aula'] = $dados; echo "<script>location='principal.php';</script>"; } ?>

Teremos tambm o arquivo verificarsessao.php:


<?php // Verifica se o usurio j est logado session_start();

Tpicos Especiais Internet/Php/MySql if (!isset($_SESSION['aula'])) { header("Location: acesso.php"); } if (isset($_GET['logout'])) { session_destroy(); header("Location: acesso.php"); } ?>

44

E a pgina principal.php:
<?php include("verificarsessao.php"); ?> <html> <head> <title>Session</title> </head> <body> <table align="center" width="60%" border="1"> <tr> <td><?php echo $_SESSION['aula'][2]; ?></td> </tr> <tr> <td><a href="?logout">LOGOUT - SAIR</a></td> </tr> </table> </body> </html>

BANCO DE DADOS MYSQL


MySQL um sistema de gerenciamento de banco de dados relacional que utiliza a linguagem padro SQL e largamente utilizado em aplicaes para internet. Para trabalhar com o MySql iremos utilizar a ferramenta phpmyadmin. Principais conceitos de funes do mysql que iremos utilizar: mysql_query Realiza uma query MySQL. Envia uma query para o banco de dados ativo no servidor da conexo informada, ou seja, a ltima conexo aberta usada. Nota: A string da query no deve terminar com ponto e virgula(;). Ex:
$query = mysql_query("select * from tabtipos where descricao = 'Acervo'");

mysql_num_rows Retorna o nmero de linhas em um resultado. Este comando valido apenas para o SELECT. Para obter o nmero de linhas afetadas por INSERT, UPDATE ou DELETE, use mysql_affected_rows(). Ex:

Tpicos Especiais Internet/Php/MySql

45

$resultado = mysql_num_rows($query); mysql_affected_rows Devolve o nmero de linhas afetadas na operao anterior com o MySQL Retorna o nmero de linhas afetadas pela ultima query INSERT, UPDATE ou DELETE associada a link aberto por mysql_connect(). Ex:
mysql_query("DELETE FROM tabprod WHERE cod < 10"); echo ("Registros excludos: ", mysql_affected_rows());

mysql_fetch_array Busca o resultado de uma linha e o coloca como uma matriz associativa, matriz numrica ou ambas. Retorna uma matriz que corresponde a linha buscada, ou FALSE se no houverem mais linhas. Alm de guardar os dados em um ndice numrico na matriz, tambm guarda os dados em ndices associativos, usando o nome do campo como chave. Ex:
<?php $sql = mysql_query("select id, nome, nivel FROM tabusuarios WHERE login = '$login' AND senha = '$senha'"); $linhas = mysql_num_rows($sql); $vetor = mysql_fetch_array($sql); if ( $linhas == 1 ) { session_start(); $id $nome $nivel $campos = $vetor["id"]; = $vetor["nome"]; = $vetor["nivel"]; = array($nome,$nivel,$id); //0 = nome; 1 = nvel e 2 = id

$_SESSION['locadora'] = $campos; echo "<script>location='principal.php';</script>"; } else { echo "<script>alert('Login ou Senha Invlidos! Tente Novamente...'); location='index.php';</script>"; } ?>

Acessando o MySql via PHP


Estabelecendo conexes Para acessar bases de dados num servidor MySql, necessrio antes estabelecer uma conexo. Para isso, deve ser utilizado o comando mysql_connect, ou o

Tpicos Especiais Internet/Php/MySql

46

mysql_pconnect. A diferena entre os dois comandos que o mysql_pconnect estabelece uma conexo permanente, ou seja, que no encerrada ao final da execuo do script. Iremos usar o mysql_connect para nosso sistema. mysql_connect -- Abre uma conexo com o servidor MySQL; mysql_pconnect -- Abre uma conexo persistente com um servidor MySQL; Iremos utilizar este exemplo em nosso sistema, por padro iremos chamar este arquivo de 'conexao.php'.
<?php $_ENV["host"] = "localhost"; //endereo $_ENV["login"] = "matriculaaluno"; //usurio do mysql $_ENV["senha"] = " matriculaaluno "; //senha do usurio $_ENV["db"] = "ceef"; //database $conn = mysql_connect($_ENV["host"], $_ENV["login"], $_ENV["senha"]) or die ("No foi possvel conectar com o servidor."); mysql_select_db($_ENV["db"],$conn) or die ("No foi possvel selecionar o banco."); //estabelecendo a conexao ?>

mysql_select_db -- Seleciona um banco de dados MySQL O valor de retorno um inteiro que identifica a conexo, ou falso se a conexo falhar. Antes de tentar estabelecer uma conexo, o interpretador PHP verifica se j existe uma conexo estabelecida com o mesmo host, o mesmo login e a mesma senha. Se existir, o identificador desta conexo retornado. Seno, uma nova conexo criada. Uma conexo estabelecida com o comando mysql_connect encerrada ao final da execuo do script. Acessando o MySql em modo terminal
Iremos aprender as operaes bsicas com o MySql em modo terminal (texto). Para entrar no ambiente do mysql digite no terminal: mysql Como no definimos senha para o root, no digite nada quando pedir a senha, apenas aperte enter. Pronto, este o ambiente onde voc ir criar databases, criar tabelas, inserir valores, alterar e excluir registros.

ATIVIDADES COM O MYSQL EM MODO TERMINAL


1. Criar banco de dados > create database cadastro; 2. Utilizando o banco de dados Voc precisa informar qual banco ir usar para criar tabelas > use cadastro; 3. Criando tabelas e campos > create table imovel (id int not null auto_increment primary key, nome varchar(40) not null, cpf varchar(14) not null);

Tpicos Especiais Internet/Php/MySql

47

Foi criada a tabela imvel, com os campos: id tipo int, auto incremento, chave primria e no pode ser nulo Nome 40 posies e no nulo; CPF 14 posies e no nulo.
Neste ambiente do mysql voce pode saltar de linha, desde que no inclua o ponto e vrgula (;) no final. O ; indica que para executar o comando. 4. Inserindo registros na tabela > insert into imovel (id, nome, cpf) values (1,Jakeline,159.123.000-00); 5. Selecionando os campos > select * from imovel; 6. Atualizando registros > update imovel set cpf=111.111.111-11 where id=1; 7. Alterando tabelas depois da criao Vamos alterar o tamanho do campo nome para 15 > alter table imovel modify nome varchar(15) not null; 8. Deletando os registros da tabela > delete from imovel; Cuidado!. Exclui todo o registro da tabela imovel. 9. Excluindo a tabela e seus registros > drop table imovel;

Todos os procedimentos acima, foram criados com o tipo padro do MySql o TYPE=MyISAM. Esse tipo (MyIsam) no permite integridade relacional entre as tabelas. Para incluir integridade relacional entre as tabelas preciso utilizar o type InnoDB. O QUE INTEGRIDADE RELACIONAL???
Para explicar o conceito de integridade relacional, vejamos um exemplo bem prtico: Temos 2 tabelas : tabfuncionarios e tabdependentes Na tabfuncionarios temos os campos: cpf(PK) e nome; Na tabdependentes temos: codigo(PK), cpf_func(FK) e nome.

Um funcionrio pode ter vrios dependentes; No podemos excluir funcionrio, se o mesmo tiver dependente; Quando alterarmos o cpf do funcionrio, o mesmo alterado automtico na tabela dependentes. Vejamos o script SQL para gerar tabelas InnoDB com integridade relacional.
CREATE TABLE tabfuncionarios ( cpf int(3) NOT NULL , nome varchar(30) NOT NULL , PRIMARY KEY (cpf)

Tpicos Especiais Internet/Php/MySql

48

) TYPE = INNODB;

CREATE TABLE tabdependentes ( codigo varchar(10) NOT NULL , nome varchar(30) NOT NULL, cpf_func int(3) NOT NULL , PRIMARY KEY (codigo, cpf_func), INDEX (cpf_func), FOREIGN KEY (cpf_func) REFERENCES tabfuncionarios(cpf) ON UPDATE CASCADE ON DELETE RESTRICT ) TYPE = INNODB;

Referncias Consultadas
Site Oficial do PHP

http://www.php.net/manual/pt_BR/

Você também pode gostar