Documente Academic
Documente Profesional
Documente Cultură
ramilton_costa@hotmail.com
NDICE
ndice.............................................................................................................................. Figuras............................................................................................................................ Tabelas........................................................................................................................... Listagens........................................................................................................................ Prefcio........................................................................................................................... Captulo 1 Linguagem de Programao PHP.............................................................. 1.1 O que PHP?................................................................................................... 1.2 O que o PHP pode Fazer?................................................................................ 1.3 O que Preciso?............................................................................................... 1.4 Anatomia de um Script..................................................................................... 1.5 Primeira Pgina PHP........................................................................................ Captulo 2 Sintaxe Bsica........................................................................................... 2.1 Alterando/Escaping do HTML......................................................................... 2.2 Separador de Instrues................................................................................... 2.3 Comentrios..................................................................................................... Captulo 3 Tipos.......................................................................................................... 3.1 Booleanos......................................................................................................... 3.1.1 Sintaxe.................................................................................................. 3.1.2 Convertendo para Booleano................................................................. 3.2 Inteiros............................................................................................................... 3.2.1 Sintaxe.................................................................................................. 3.2.2 Overflow de Inteiros............................................................................. 3.2.3 Convertendo para Inteiros.................................................................... 3.3 Nmeros de Pontos Flutuantes.......................................................................... 3.3.1 Convertendo para Float........................................................................ 3.4 String................................................................................................................. 3.4.1 Sintaxe ................................................................................................. 3.4.2 Convertendo para String....................................................................... 3.5 Arrays................................................................................................................ 3.5.1 Sintaxe.................................................................................................. 3.5.2 Convertendo para Array....................................................................... 3.6 Objetos.............................................................................................................. 3.6.1 Inicializao de Objetos....................................................................... 3.7 Null.................................................................................................................... 3.7.1 Sintaxe.................................................................................................. 3.8 Manipulao de Tipos....................................................................................... 3.8.1 Moldandos Tipos Type Casting........................................................ Captulo 4 Variveis.................................................................................................... 4.1 Variveis Pr-definidas..................................................................................... 4.2 Constantes......................................................................................................... Captulo 5 Operadores................................................................................................. 5.1 Precedncia de Operadores............................................................................... 5.2 Operadores Aritmticos.....................................................................................
Curso Bacharelado em Cincia da Computao FACTEF PAG
02 04 05 06 07 08 08 08 09 09 10 11 11 12 12 13 15 15 15 15 15 16 16 16 17 17 17 18 18 18 19 19 19 20 20 20 20 22 22 23 24 24 25 2
5.3 Operadores de Atribuio.................................................................................. 5.4 Operadores de Comparao.............................................................................. 5.5 Operadores de Incremento/Decremento............................................................ 5.6 Operadores Lgicos........................................................................................... Captulo 6 Estrutura de Controle................................................................................. 6.1 IF....................................................................................................................... 6.2 Else.................................................................................................................... 6.3 ElseIF................................................................................................................ 6.4 While................................................................................................................. 6.5 do ... While........................................................................................................ 6.6 For..................................................................................................................... 6.7 Break................................................................................................................. 6.8 Continue............................................................................................................ 6.9 Switch................................................................................................................ Captulo 7 Funes...................................................................................................... 7.1 Funes Definidas pelo Usurio....................................................................... 7.2 Funes que Retornam Valores......................................................................... 7.3 Funes Internas................................................................................................ Captulo 8 Acessando o MySql via PHP..................................................................... 8.1 Estabelecendo Conexes................................................................................... 8.2 Selecionando a Base de Dados.......................................................................... 8.3 Realizando Consultas........................................................................................ 8.4 Apagando o Resultado...................................................................................... 8.5 Nmeros de Linhas............................................................................................ 8.6 Utilizando os Resultados................................................................................... 8.7 Alterando o Ponteiro de um Resultado............................................................. Captulo 9 Exemplo de Cdigo PHP........................................................................... 9.1 Chat................................................................................................................... 9.2 Aplicao de Banco de Dados para Web.......................................................... Bibliografia.....................................................................................................................
25 26 26 27 28 28 29 30 30 31 32 33 34 35 37 37 37 37 39 39 39 40 40 40 41 41 42 42 49 54
PAG
FIGURAS
Figura 1 Anatomia de um Script PHP......................................................................... Figura 2 Exemplo de Separador de Instruo............................................................. Figura 3 Exemplo de Comentrios Utilizado no PHP................................................ Figura 4 Exemplo de Declarao de um Literal Booleano......................................... Figura 5 Exemplo de Declarao de Variveis do Tipo Inteiros................................ Figura 6 Exemplo de Quando Ocorre um Overflow................................................... Figura 7 Exemplo de Declarao de um Ponto Flutuante........................................... Figura 8 Sintaxe de uma String Utilizando Apostrofo................................................ Figura 9 Sintaxe de um Array..................................................................................... Figura 10 Sintaxe de um Array Utilizando a Chave como um Inteiro ou String........ Figura 11 Sintaxe de como Utilizar Objetos em PHP................................................. Figura 12 Sintaxe de como Declarar o Valor Null em PHP....................................... Figura 13 Manipulao de Dados em PHP................................................................. Figura 14 Manipulao de Dados em PHP Utilizando Type Casting......................... Figura 15 Modo de Declarao de Variveis em PHP................................................ Figura 16 Utilizao de Constantes em PHP.............................................................. Figura 17 Truques Utilizando o Operador de Atribuio........................................... Figura 18 Truques Utilizando o Operador de Atribuio...........................................
Figura 19 Exemplo de Operadores de Ps e Pr-Incremento e Ps e Pr-Decremento..........
Figura 20 Exemplo de uma Estrutura Simples, Atravs de Construo IF................. Figura 21 Exemplo de Utilizao de dois Comandos dentro da Estrutura IF............ Figura 22 Exemplo de Utilizao da Estrutura Else................................................... Figura 23 Exemplo de Utilizao da Estrutura ElseIF................................................ Figura 24 Exemplo de Utilizao da Estrutura While................................................ Figura 25 Exemplo de Utilizao da Estrutura Do... While......................................... Figura 26 Exemplo de Utilizao da Estrutura For..................................................... Figura 27 Exemplo de Utilizao do Comando Break............................................... Figura 28 Exemplo de Utilizao do Comando Continue.......................................... Figura 29 Exemplo de Utilizao da Estrutura Switch............................................... Figura 30 Exemplo de Utilizao da Estrutura Switch............................................... Figura 31 Exemplo de Utilizao da Estrutura Switch Utilizando Default................ Figura 32 Exemplo de uma Funo que Retorna um Valor........................................ Figura 33 Exemplo do Comando para a Conexo com o Banco de Dados................ Figura 34 Exemplo do Comando para Fechar a Conexo com o Banco de Dados.... Figura 35 Exemplo do Comando para Selecionar um Banco de Dados..................... Figura 36 Exemplo do Comando para Realizar uma Consulta no Banco de Dados... Figura 37 Exemplo do Comando para Apagar da Memria um Resultado................
Figura 38 Exemplo do Comando para Retornar um Nmero de Linhas do Resultado........... Figura 39 Exemplo do Comando para Retornar um Nmero de Linhas do Resultado...........
09 12 12 15 16 16 17 17 18 19 19 20 20 20 22 23 25 25 27 28 29 29 30 31 32 33 34 34 35 36 36 37 39 39 40 40 40 40 41
Figura 40 Exemplo do Comando para Retornar um Nmero Maior de Linhas do Resultados...................................................................................................................... 41 Figura 41 Exemplo do Comando que l Linha a Linha ate o Final do Resultado...... 41 Figura 42 Exemplo do Comando para Alterar o Ponteiro de um Resultado............... 41
Curso Bacharelado em Cincia da Computao FACTEF PAG
TABELAS
Tabela 1 Tabela de Caracteres Especiais Quando Utilizando com Aspas.................. Tabela 2 Tabela de Precedncia de Operadores.......................................................... Tabela 3 Tabela de Operadores Aritmticos............................................................... Tabela 4 Tabela de Operadores de Comparao......................................................... Tabela 5 Tabela de Operadores de Incremento e Decremento................................... Tabela 6 Tabela de Operadores Lgicos....................................................................
18 24 25 26 26 27
PAG
LISTAGENS
Listagem 1 Anatomia Bsica de uma pagina PHP...................................................... Listagem 2 Exemplo de Declarao de Variveis....................................................... Listagem 3 Cdigo da Pagina Principal...................................................................... Listagem 4 Cdigo para Processar as Informaes Postada da Pagina Principal....... Listagem 5 Cdigo do Nosso Chat............................................................................. Listagem 6 Cdigo da Pagina que Enviara os Dados................................................. Listagem 7 Cdigo da Pagina que vai Processar os Dados Digitados pelo Usurio... Listagem 8 Cdigo que Ira Ler as Informaes dos Usurios.................................... Listagem 9 Cdigo que Ira Mostrar os Usurios que Esto On-Line......................... Listagem 10 Cdigo que Recebera os Dados a Serem Includo no Banco de Dados. Listagem 11 Cdigo para a Insero dos Dados no Banco de Dados......................... Listagem 12 Cdigo para Fazer a Pesquisa dos Dados no Banco de Dados............... Listagem 13 Pagina Principal.....................................................................................
10 14 42 43 44 45 46 47 48 50 51 53 53
PAG
PREFCIO
Prezado leitor, Este material destinado aos alunos do Curso de Bacharelado em Cincia da Computao da Faculdade Teixeira de Freitas FACTEF e tambm a todos os profissionais da rea interessados em aprender ou aperfeioar seus conhecimentos em linguagem de programao de computadores, neste caso particular da linguagem PHP. Neste material so apresentados os conceitos bsicos, estruturas, e tcnicas de programao PHP, que serviro como base para o estudo dos principais conceitos, fundamentos e tcnicas de programao para internet utilizando a linguagem PHP. muito importante, para o estudo de linguagens de programao, que se faa uma leitura minuciosa dos textos que fundamentam a atividade de programao, reconhecidamente uma das mais rduas tarefas de um profissional de computao. Neste ponto, uma boa fundamentao terica facilita a compreenso da sintaxe da linguagem e conduz a um bom aprendizado e, posteriormente, domnio da arte do desenvolvimento de software. Este material apresenta aspectos tericos e programas-exemplo que auxiliam a compreenso das tcnicas de programao. Tabelas e figuras so tambm utilizadas na formao deste material didtico. Em meio aos textos, so apresentados alguns cones que devem ser observados com ateno. Tais cones objetivam alerta o leitor para pontos de maior relevncia do contedo deste material, bem como apresentar dicas e auxiliar o processo de aprendizagem. Implemente o programa-exemplo para melhor compreenso do assunto Espero que este material didtico seja til e colabore para a sua formao profissional. O autor.
PAG
O PHP pode ser utilizado em vrios sistemas operacionais como: Linux, Windows, Unix, Mac OsX , e entre outros aqui no citado. Tambm tem suporte com a maioria dos servidores web, como: Apache, Personal Web Serve, e etc. com o PHP voc tem uma total liberdade de escolha de sistemas operacionais e servidores web. Como voc teria uma total liberdade de escolha entre a programao estruturada ou orientada a objeto. Por essa ultima o PHP 5 possui mdulos de programao orientada a objetos, onde nos da uma facilidade de esta trabalhando com objetos remotos e instanciao de objetos Java. O PHP tambm suporta uma ampla variedade de banco de dados. Como: Interbase, PostgreSQL, MySql, Sysbase, e entre outros. O PHP tambm suporta o padro ODBC, permitindo assim qualquer conexo com o banco de dados que suporta esse padro mundial. O PHP tambm tem suporte com vrios tipos de protocolos. Como: NNTP, POP3, http, e entre outros existentes. Caro leitor como voc mesmo pode ver, daria pra escrever um livro sobre o que o PHP pode fazer. Finalizamos esta parte por aqui e vamos aos que interessa.
PAG
1. <HTML> 2. <HEAD> 3. <TITLE>Primeiro Exemplo PHP</TITLE> 4.</HEAD> 5. <BODY> 6. <?php 7. Echo<p> Pagina utilizando recursos PHP</p>; 8. ?> 9. </BODY> 10. </HTML>
Listagem 1. Anatomia bsica de uma pgina PHP Depois do documento criado e salvo, basta voc utilizar o seu browser para visualizar a sua pgina. Quando o desenvolvimento local, basta digitar na sua URL da seguinte maneira: http://localhost/primeiro.php ou http://127.0.0.1/primeiro.php Com isso podemos ver que no um script CGI. O arquivo no precisa ser executvel, mas sim, podemos assimilar como se fosse uma pagina HTML, mas com uma grande diferena que ele possui tags especiais que permita a voc criar no s pginas estticas mais sim paginas dinmicas. Este exemplo muito simples. Tudo o que ele faz mostrar no browser atravs da funo echo() do PHP a frase Pagina utilizando recursos PHP. Se voc tentar visualizar este exemplo e o browser no mostrar nenhuma mensagem, h uma grande chance do seu servidor ou sua maquina local no estiver com o php instalado. Como podemos ver neste exemplo a linha 6 possui a tags (<?php) indicando que naquele momento inicia-se o cdigo PHP. Na linha 7 possui a funo (echo()) do PHP que tem como funo mostrar qualquer texto que esteja entre aspas duplas no browser e por ultimo na linha 8 possui a tags (?>) que indica final do cdigo PHP. Podemos observar que nos podemos utilizar vrios cdigos PHP na mesma Pagina HTML.
PAG
10
A primeira forma, <?php...?>, o preferencial, j que o mesmo permite o uso de cdigos padres XML. A segunda forma pode no estar sempre disponvel. Tags curtas esto disponveis apenas quanto ativadas. A terceira forma esta sempre disponvel e to seguro quanto primeira forma. E a ultima forma s esta disponvel se a tags estilo ASP estiver ativada utilizando diretiva asp_tags no arquivo de configurao.
PAG
11
<?php Echo finalizando uma intruo; ?> Ou <?php Echofinalizando uma instruo ?>
Figura 2. Exemplo de separador de instruo
2.3 Comentrios
O PHP suporta comentrios do tipo utilizado em linguagens de programao como C, C++. Conforme ilustrado na figura abaixo.
<?php Echo comentrio; //comentario de uma linha Echo comentrio de duas linha; /* outra forma de se usar comentario quando queremos comentar mais de de uma linha, ou um bloco de comandos.*/ Echo outro tipo de comentrio; # comentario no estilo Unix shell ?>
Figura 3. Exemplo de comentrio utilizados no PHP Os comentrios so utilizados para deixar o seu cdigo mais claro e legvel para uma futura manuteno. E os comentrios de uma linha s tm efeito at o fim da linha ou fim de blocos de cdigo PHP atual.
PAG
12
Captulo 3 Tipos
Em uma linguagem de programao o tipo de dados de uma varivel define o conjunto de valores que a varivel pode assumir. Por exemplo, uma varivel de um tipo Integer, pode assumir os seguintes valores como os conjuntos dos nmeros Z={..,1,0,1,..}. De modo geral, uma declarao de varivel em uma linguagem de programao especifica duas coisas: 1. A quantidade de byte que deve ser reservada para a varivel; 2. Como o dado representado por esses bytes deve ser interpretado. O PHP suporta oito tipos primitivos. Conforme abaixo mostrado: 1. Bsicos Boolean Integer Float ou double String 2. Compostos Array Object 3. Especiais Resource Null O tipo da varivel geralmente no definido pelo programador, isto decidido em tempo de execuo pelo PHP, dependendo do contexto no qual a varivel usada. Existe forma de se checar o tipo de uma expresso, basta voc utilizar a funo var_dump(). Ou se voc preferir checar o tipo de uma varivel utilize a funo is_type. Exemplo
PAG
13
1.<?php 2. $logico = true; // uma varivel do tipo booleano 3. $texto = palavra; // uma varivel do tipo string 4. $numero = 12; // uma varivel do tipo inteiro 5. 6. Echo gettype($logico); // imprime boolean 7. Echo gettype($texto); //imprime string 8. // se um inteiro incrementa em quatro 9. 10. If (is_int($numero)){ 11. $numero +=4; 12. } 13. // se $logico string, imprime e no faz nada se no for 14. If(is_string($logico)){ 15. Echo string: $logico; 16. } 17.?>
Listagem 2. Exemplo de declarao de variveis Se voc quiser converter uma varivel de um tipo para outro tipo, basta utilizar o casting ou usar a funo sttype(). Observe que uma varivel pode ser avaliada de diferentes formas, dependendo da situao no momento que se encontra no cdigo do programa. Vamos analisar o exemplo acima. Na linha 1 so as tags especiais de inicio de cdigo PHP (<?php). Na linha 2 eu declarei uma varivel $logico do tipo booleano ($logico = boolean), onde mais a frente vamos falar sobre declarao de varivel, vale ressaltar agora que sempre quando eu quero declarar uma varivel eu utilizo o smbolo de chifro($) no inicio da palavra. Na linha 3 eu declarei outra varivel do tipo string ($texto = palavra). Na linha 4 eu declarei mais uma varivel do tipo inteiro($numero = 12). Na linha 6 estou utilizando a funo echo() para mostrar no browser, mais eu utilizei a funo gettype que tem como funo pegar o tipo da varivel, neste caso a utilizao do gettype($logico), vai me retornar boolean, o tipo da varivel que foi declarado na linha 2. Sendo assim ira me mostrar no browser atravs da funo echo o tipo da varivel que boolean. Na linha 7 vai acontecer a mesma coisa da linha 6, mais em vez de mostrar no browser boolean vai mostrar string atravs do gettype($texto). Na linha 9 possui um comentrio de linha simples utilizado atravs das duas barras. Na linha 10 possui uma estrutura de condio (if (is_int($numero))), nesta estrutura de condio ser avaliado se a varivel $numero um inteiro. Se a condio for verdadeira, ira executar o que esta dentro do escopo, seno ela no far nada. Mais adiante iremos abortar com mais detalhes como utilizamos estrutura de condio. Na linha 11 eu estou incrementando a varivel $numero em 4 ($numero +=4). Na linha 12 possui um caractere chave( }) que indica fechamento de bloco. Na linha 13 possui outro comentrio de linha simples atravs das
Curso Bacharelado em Cincia da Computao FACTEF PAG
14
barras(//). Na linha 14 possui outra estrutura de condio, que nesta vez vai avaliar se a varivel $logico do tipo string. Se for verdade, ira executar tudo que estiver dentro do bloco, seno for verdade no acontecera nada. (if(is_string($logico))). Na linha 15 possui a funo echo que ira mostrar na tela o texto que estiver entre aspas duplas. Na linha 16 possui um caractere chave(}) que indica final de bloco, e para finalizar na linha 17 possui a tags especial indicando fim do cdigo PHP.
3.1 Booleanos
Este o tipo mais fcil. Um booleano expressa um valor de verdade. Ele pode ter dois valores, TRUE(verdadeiro) ou FALSE(falso).
3.1.1 Sintaxe
Para especificar um literal booleano, use a palavra chave TRUE ou FALSE. Ambas so insensitivas ao caso. Exemplo:
3.2 Inteiros
Um inteiro um numero do conjunto Z={...,-2,-1,0,1,2,...}.
3.2.1 Sintaxe
Inteiros podem ser especificados em notao decimal (base 10), hexadecimal (base 16) ou octal (base 8), opcionalmente precedido de sinal (- ou +). Para utilizar a
PAG
15
notao octal, voc precisa preceder o nmero com um 0(zero), ou caso voc queira utilizar a notao hexadecimal, preceda o nmero com 0x. Exemplo.
<?php $a = 123456; //nmero decimal $a = -123456; //nmero negativo $a = 0123456; //nmero octal $a = 0x1A; //nmero hexadecimal ?>
Figura 5. Exemplo de declarao de variveis do tipo inteiras
<?php $numero = 2147483647; Var_dump($numero); // sada: int(2147483647) $numero = 2147483648; Var_dump($numero); //sada: float(2147483648) ?>
Figura 6. Exemplo de quando ocorre um Overflow
PAG
16
3.4 String
Uma string uma srie de caracteres. No PHP, um caracter o mesmo que um byte, ou seja, h exatamente 256 caracteres possveis. Isto implica que o PHP no tem suporte nativo ao Unicode.
3.4.1 Sintaxe
Uma string pode ser especificada de duas formas direferentes: 1. Apstrofo Sendo a maneira mais simples de se especificar uma string. Exemplo
<?php Echo isto uma string comum; Echo esta uma Outra maneira; Echo voce tem certeza que deseja apagar c:\*.*?; ?>
Figura 8. Sintaxe de uma string utilizando apstrofo 2. Aspas Se a string delimitada entre as aspas(), o PHP entende mais sequencia de escape para caracteres especiais, como a tabela abaixo:
PAG
17
Significado Fim de linha Retorno de carro TAB horizontal Contra barra ou barra invertida Sinal de cifrao Aspas A sequencia de caracteres batendo a expressao regular dos caracteres em notao octal \x[0-9A A sequencia de caracteres batendo a expressao regular de um caracter Fa-f]{1,2} em notao hexadecimal. Tabela 1. Tabela de caracteres especiais quando utilizando com aspas.
Sequencia \n \r \t \\ \$ \ \[0-7]{1,3}
3.5 Arrays
Uma array no PHP atualmente um mapa ordenado. Um mapa um tipo que realciona valores para chaves.
3.5.1 Sintaxe
Um array pode ser criado com o construtor de lingaguem array(). Ele pega um certo nmero de pares separados por virgula chave => valor. Exemplo
<?php $arr = array(palavra => ourtra, 12 => true); Echo $arr[palavra]; // outra Echo $arr[12]; ?>
Figura 9. Sintaxe de um array.
PAG
18
<?php $arr = array(matriz => array(6 =>5, 13 =>9, a => 42)); Echo $arr[matriz][6]; //5 Echo $arr[matriz][13]; //9 Echo $arr[matriz][a]; //42 ?>
Figura 10. Sintaxe de um array utilizando a chave como um inteiro ou string.
3.6 Objetos
O objeto o resultado da unio entre uma estrutura de dados e todas as operaes associadas a ela.
<?php Class primeira { Function Mostrar() { Echo mostrando na tela; } } $frase = new primeira; $frase->Mostrar(); ?>
Figura 11. Sintaxe de como utilizar objetos em PHP.
PAG
19
3.7 Null
O valor especial NULL indica que a variavel no tem valor. O NULL o nico valor possvel do tipo NULL. A variavel considerada NULL se: Ela foi assimilada com a constante NULL. Ela ainda no recebeu nenhum valor. Ela foi apagada com a funo unset().
3.7.1 Sintaxe
H apenas um nico valor do tipo NULL, a palavra NULL. Conforme a figura abaixo:
<?php $numero = 10; // numero inteiro $logico = (boolean) $numero; // logico um booleano ?>
Figura 14. Manipulao de dados em PHP utilizando Type Casting.
PAG
20
As moldagens permitidas so: (int),(integer) molde para inteiro (bool),(boolean) molde para booleano (float),(double),(real) molde para numero de ponto flutuante (string) molde para string (array) molde para array (object) molde para objeto
PAG
21
Captulo 4 Variveis
Uma varivel uma posio de memria definida atravs de um nome ou identificador e que pode ser modificado dependendo da logica do programador. As variaveis em PHP so representada por um cifro($) seguido pelo nome da varivel. As variveis em PHP tem distino entre maiuscula e minusculas, por isso temos que ter cuidado na hora de declararmos uma varivel, pois $Texto diferente de $texto. Os nomes de variveis para PHP segue algumas regras especificas. Um nome de varivel se inicia com uma letra ou um sublinhado, seguido de qualquer nmero, letras, algarismo ou sublinhados. Exemplos
<?php $a = joao; $A = maria; Echo $a,$A; //exibe na tela joao, maria $3g = texte; //invalido, comea com um nmero $_3g = texte; //vlido, comea com um sublinhado ?>
Figura 15. Modo de declaraes de variveis em PHP.
22
$_POST Variveis postadas para o script via metodo http POST. $_COOKIE Variveis postadas para o script via cookies http. $_FILE Variveis postadas para os scritp via transferencia de arquivos http. $_ENV Variveis disponveis no script do ambiente de execuo. $_REQUEST Variveis postadas para o script por todos os mecanismos de input GET, POST, e COOKIE no podem ter seu contedo garantido de qualquer forma. A presena e a ordem de incluso das variaveis nesse array definida de acordo com a diretiva de configurao variables_order.
4.2 Constantes
Constantes so variveis que no tem o seu contedo alterado durante a execuo do script. Como qualquer identificador do php, as constantes tem a mesmas regras de formao. Conforme a figura abaixo:
<?php // Nomes de constantes vlidos define("FRASE", "contedo de uma constante"); define("PALAVRA", "php"); // Nomes de constantes invlidas define("2FRASE", "forma errada de declarao"); ?>
Figura 16. Utilizao de constantes em PHP.
OBS: Podemos observar que as constantes por converso devem sempre ser declaradas em maisculas. No exemplo acima podemos notar que a funo define() utilizada para declarar uma constante. E tambm podemos ver que na hora de declarar uma constante no precisamos utilizar o caracter especial $(Cifro), como utilizamos em declaraes de variveis. Outro fator importante que temos que levar em conta que na criaao de uma constante, o seu conteudo no pode ser alterado ou excluido.
Curso Bacharelado em Cincia da Computao FACTEF PAG
23
Captulo 5 Operadores
Um operador algo que voc alimenta com um ou mais valores e que devolve outro valor.
no associativo < <= > >= no associativo == != === !== esquerda esquerda esquerda esquerda esquerda esquerda direita direita esquerda esquerda esquerda & ^ | && || ?: = += -= *= /= .= %= &= |= ^= <<= >>= Print And Xor Or
PAG
24
$a % $b Mdulo Resto de $a dividido por $b. Tabela 3. Tabela de operadores Aritmticos. O operador de diviso ("/") sempre retorna um valor com ponto flutuante, mesmo que os dois operando sejam inteiros (ou strings convertidos para inteiros).
<?php $a = 3; $a += 5; //atribui o valor 8 para a varivel $a $b = "Bom "; $b .= "Dia!"; /*atribui a palavra Dia a varivel $b, resultando o valor da varivel $b como: "Bom Dia!"*/ ?>
Figura 18. Truques utilizando o operador de atribuio.
Curso Bacharelado em Cincia da Computao FACTEF PAG
25
$a <> $b Diferente
Maior ou Verdadeiro se $a maior ou igual a $b. igual Tabela 4. Tabela de operadores de comparao.
Pr-incremento Incrementa $a em um, e ento retorna $a. Ps-incremento Retorna $a, e ento incrementa $a em um. Pr-decremento Decrementa $a em um, e ento retorna $a.
$a-Ps-decremento Retorna $a, e ento decrementa $a em um. Tabela 5. Tabela de operadores de incremento e decremento. Aqui est um script de exemplo simples:
PAG
26
<?php echo "<h3>Ps-incremento</h3>"; $a = 5; echo "Deve ser 5: " . $a++ . "<br />\n"; echo "Deve ser 6: " . $a . "<br />\n"; echo "<h3>Pr-incremento</h3>"; $a = 5; echo "Deve ser 6: " . ++$a . "<br />\n"; echo "Deve ser 6: " . $a . "<br />\n"; echo "<h3>Ps-decremento</h3>"; $a = 5; echo "Deve ser 5: " . $a-- . "<br />\n"; echo "Deve ser 4: " . $a . "<br />\n"; echo "<h3>Pr-decremento</h3>"; $a = 5; echo "Deve ser 4: " . --$a . "<br />\n"; echo "Deve ser 4: " . $a . "<br />\n"; ?>
Figura 19. Exemplos de operadores de ps e pr-incremento e ps e prdecremento.
$a xor $b XOR Verdadeiro se $a ou $b so verdadeiros, mas no ambos. NO Verdadeiro se $a no verdadeiro. Verdadeiro se tanto $a quanto $b so verdadeiros. $a && $b E
PAG
27
Normalmente, instrues em um programa so executadas uma aps a outra na ordem em que so escritas. Vrias instrues que discutiremos a seguir permitem que o programador especifique que a prxima instruo a ser executada pode ser outra que no a prxima na seguencia. Em PHP ns temos vrias estrutra de controle, como estrutura de repetiao e de seleo. Onde abordaremos neste captulo.
6.1 IF
A construo if uma das mais importantes implementaes de muitas linguagens, incluindo o PHP. Ela permite a execuo condicional de fragmentos de cdigo. O PHP implementa uma estrutura if que similar a do C: If (expresso) Instruo;
Obs:. Na estrutura acima, a instruo somente ser executada se a expresso retornar um valor verdadeiro. Exemplo
PAG
28
Por exemplo
6.2 ELSE
A instruo else utilizada quando voc vai querer executar certa instruo que for encontrada, e uma instruo diferente se a condio no for encontrada. Isto o que o else faz. else estende um comando if para executar uma instruo caso a expresso no comando if seja avaliada como FALSE. Conforme a figura abaixo:
<?php If ($a > $b) { Echo a maior que b; } else{ Echo a no maior que b; } ?>
Figura 22. Exemplo de utilizao da estrutura ELSE.
PAG
29
Como podemos ver o comando else s executado se a expresso if for avaliada como FALSE, e se havendo qualquer expresso elseif, somente se todas elas forem avaliadas como FALSE.
6.3 ELSEIF
elseif uma combinao de if e else. Da mesma forma que o else, ele estende um comando if para executar uma instruo diferente no caso de a expresso if original ser avaliada como FALSE. Porm, ao contrrio de else, ele executar aquela expresso alternativa somente se a expresso condicional do elseif for avaliada como TRUE. Por exemplo
<?php If ($a > $b) { Echo a maior que b; } elseif ($a == $b) { Echo a igual a b; }else{ Echo b maior que a; } ?>
Figura 23. Exemplo de utilizao da estrutura ELSEIF. Tambm podemos ter vrios elseifs dentro da mesma instruo if. A primeira expresso elseif que for avaliada como TRUE ser executada.
6.4 while
A estrutura de repetio while, assim como a estrutura for, permite que um conjunto de instruo possa ser executado enquanto uma determinada condio de permanncia for verdadeira Loops while so o tipo mais simples de criar um 'loop' em PHP. Eles se comportam como seus compatveis em C. O formato bsico de um comando while : While (expresso) instrues;
Curso Bacharelado em Cincia da Computao FACTEF PAG
30
O significado de um comando while simples. O comando executado ate que a expresso se torne false. O valor da expresso verificado cada vez que se passa no comeo do 'loop', desta forma, mesmo que este valor mude durante a execuo dos comandos, a execuo no parar at que o fim da iterao. s vezes, se a expresso while avaliada como FALSE logo no incio, os comandos no sero executados. Como no comando if, voc pode agrupar mltiplos comandos dentro do mesmo lao while englobando um grupo de instrues com chaves, ou usando a sintaxe alternativa: While (expresso): instrues ... endwhile; Exemplo
<?php $i = 1; while ($i <= 10) { echo $i++; /* o valor impresso ser $i depois do acrscimo (post-increment) */ } $i = 1; while ($i <= 10): echo $i; $i++; endwhile; ?>
Figura 24. Exemplo de utilizao da estrutura WHILE. No exemplo acima podemos notar que a instruo ser executada ate o valor da varivel $i seja menor ou igual ao nmero 10.
6.5 do..while
Loops do..while bem parecido com os loops while, exceto pelo fato de que a condio verificada no fim de cada iterao em vez de no comeo. A diferena dos dois que pelo menos as instrues dentro da estrutura do (do.. while) executada uma vez, mesmo em que a expresso seja falsa. J na estrutura do (while) as instrues no executada se a expresso for falsa, pois a expresso avaliada logo no incio. H apenas uma sintaxe para loops do..while conforme a figura abaixo:
PAG
31
6.6 for
O comando for utilizado para permitir que um conjunto de instrues seja executado enquanto uma determinada condio for verdadeira Loops for so os laos mais complexos em PHP. Eles se comportam como os seus compatveis em C. A sintaxe de um loop for : For (expressao1; expressao2; expressao3) instrues; A primeira expresso(expressao1) geralmente um comando de atribuio que coloca um valor inicial para as variveis de controle do for, a segunda expresso (expressao2) uma condio relacional, lgica ou aritmtica, que define at quando a iterao pode continuar (condio de permanncia da repetio). E a expresso (expressao3) utilizada para incrementar ou decrementar a varivel de controle do lao que varia cada vez que o lao repetido. Exemplo
PAG
32
<?php for ($i = 1; $i <= 10; $i++) { echo $i; } for ($i = 1; ; $i++) { if ($i > 10) { break; } echo $i; } $i = 1; for (; ; ) { if ($i > 10) { break; } echo $i; $i++; } for ($i = 1; $i <= 10; echo $i, $i++); ?>
Figura 26. Exemplo de utilizao da estrutura FOR. O que acontece no exemplo acima, no nosso caso do primeiro exemplo, tem como primeira expresso uma varivel Si recebendo um valor, j na segunda expresso esta varivel que foi inicializada com o valor 1, esta sendo comparado com um valor, que neste caso o nmero 10. a estrutura ser executada ate que esta segunda expresso seja verdadeira. J na terceira expresso a varivel Si incrementada. O PHP tambm suporta a "sintaxe de dois-pontos" alternativa para laos for: For (expressao1; expressao2; expressao3): instrues; ....; endfor;
6.7 break
break cancela a execuo do comando for, while, do..while ou switch atual. break aceita um argumento numrico opcional que diz a ele quantas estruturas aninhadas englobadas devem ser quebradas. Exemplo
PAG
33
<?php $i = 0; while (++$i) { switch ($i) { case 5: echo "No 5<br />\n"; break 1; // Sai somente do switch. case 10: echo "No 10; saindo<br />\n"; break 2; // Sai do switch e while. default: break; } } ?>
Figura 27. Exemplo de utilizao do comando Break.
6.8 continue
continue usado dentro de estruturas de loops para saltar o resto da iterao do loop atual e continuar a execuo no incio da prxima iterao. continue aceita um argumento numrico opcional que diz a ele de quantos nveis de loops aninhados ele deve saltar at o fim. Conforme a figura abaixo:
<?php
$i = 0; while ($i++ < 5) { echo "Fora<br />\n"; while (1) { echo " Meio<br />\n"; while (1) { echo " Dentro<br />\n"; continue 3; } echo "Isto nunca ser exibido.<br />\n"; } echo "Nem isso.<br />\n"; } ?> Figura 28. Exemplo de utilizao do comando Continue.
PAG
34
6.9 switch
A instruo switch similar a uma srie de instrues IFs seguidas. Em muitas ocasies, voc poder ter que comparar a mesma varivel (ou expresso) com muitos valores diferentes, executando cdigos diferentes dependendo com qual valor ele se encaixar. exatamente para isso que a instruo switch faz. Exemplo
<?php if ($i == 0) { echo "i igual a 0"; } elseif ($i == 1) { echo "i igual a 1"; } elseif ($i == 2) { echo "i igual a 2"; } switch ($i) { case 0: echo "i igual a 0"; break; case 1: echo "i igual a 1"; break; case 2: echo "i igual a 2"; break; }
?> Figura 29. Exemplo de utilizao da estrutura switch. importante entender como a instruo switch funciona para evitar enganos. A instruo switch executa linha a linha. No incio, nenhum cdigo executado. Somente quando uma instruo case encontrada com um valor que combina com a expresso do switch faz com que o PHP execute as instrues a partir da. O PHP continua executando as instrues at o fim do bloco switch ou na primeira vez que encontrar uma instruo break. Se voc no escrever uma instruo break no fim das instrues case, o PHP continuar executando os cases seguintes. Conforme a figura abaixo:
PAG
35
<?php switch ($i) { case 0: echo "i igual a 0"; case 1: echo "i igual a 1"; case 2: echo "i igual a 2"; }
?> Figura 30. Exemplo de utilizao da estrutura switch. No exemplo acima, se $i igual a zero, o PHP executar todas as instrues echo! Se $i igual a 1, o PHP executar as ltimas duas instrues echo, e somente se $i for igual a 2, voc ter o comportamento 'esperado' apenas onde 'i igual a 2' ser mostrado. Ento importante no se esquecer das instrues break. Um case especial o default. Esse case executado quando nenhum outro case combina. Ele precisa ser a ltima instruo case. Conforme a figura abaixo:
<?php switch ($i) { case 0: echo "i igual a 0"; break; case 1: echo "i igual a 1"; break; case 2: echo "i igual a 2"; break; default: echo "i no igual a 0, 1 ou 2"; }
?> Figura 31. Exemplo de utilizao da estrutura switch utilizando defaut. A expresso avaliada pelo case precisa ser um tipo simples, ou seja, inteiros, nmeros de ponto flutuante e strings. Arrays ou objetos no podem ser utilizados a no ser que eles impliquem num tipo simples.
PAG
36
Captulo 7 Funes
Uma funo na linguagem PHP pode executar as mesmas tarefas que os procedimentos e funes de outras linguagens de programao estruturadas.
<?php function quadrado ($num) { return $num * $num; } echo quadrado (4); // imprime '16'.
?> Figura 32. Exemplo de uma funo que retona um valor.
37
MySQL. H vrias funes centrais que so includas em cada verso do PHP como funes de strings e variveis. Uma chamada a phpinfo() ou get_loaded_extensions() mostrar que extenses esto carregadas em seu PHP.
PAG
38
Para interagir com uma base de dados, existem trs comandos bsicos que devem ser utilizados: um que faz a conexo com o servidor de banco de dados, um que seleciona a base de dados a ser utilizada e um terceiro que executa uma query SQL.
int mysql_connect(string [host[:porta]] , string [login] , string [senha] ); int mysql_pconnect(string [host[:porta]] , string [login] , string [senha] );
Figura 33. Exemplo do comando para a conexao com o banco de dados. 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. Para encerr-la antes disso deve ser utilizado o comando mysql_close, que tem a seguinte assinatura conforme a figura abaixo:
PAG
39
Depois de estabelecida conexo, preciso selecionar a base de dados a ser utilizada, atravs do comando mysql_select_db, que mostrado na figura abaixo:
PAG
40
PAG
41
9.1 Chat
Vamos comear trabalhar com o cdigo passo a passo. Que ser desenvolvido uma sala de bate-papo. Passo. Vamos criar a nossa pagina principal. Onde possibilitara ao usurio digitar o seu nome e apelido. Conforme a listagem abaixo. <html> <head> <title>Chat</title> <meta http-equiv="Pragma" content="no-cache"> </head> <body > <form method="post" action="entra.php" name="frmEntra"> <p align="center"><i><b>Digite o seu Nome ou Apelido .</b></i></p> <p align="center"><input type="text" name="valor" size="31"></p> <p align="center"><input type="submit" value="Entrar" name="B1"></p> </form> </body> </html> Listagem 3. Cdigo da pgina principal. Como podemos observar na figura acima, a pagina tera um formulrio e dentro deste formulrio nos teremos um caixa, aonde permitira o usuario digitar o seu nome ou apelido. E dentro deste formulrio ainda teremos um boto que tem como finalidade chamar a pagina entra.php que foi especificado logo acima no parmetro action. Passo Vamos criar uma nova pagina. Onde esta pgina tem como funo processar a informao que o usurio ira digitar na nossa pagina principal. Conforme a listagem abaixo:
PAG
42
<html> <head> </head> <body bgcolor="#FFFFFF"> <?php session_start(); session_register("nome"); $nome=$valor; ?> <script> window.open('chat.html', 'chat', 'toolbar=no,location=no,status=no,menubar=no,width=700,height=500'); window.close() </script> </body> </html> Listagem 4. Cdigo para processar as informaes postada da pgina principal. No cdigo acima nos estamos utilizando uma funo session do php, para armazenar qualquer tipo de informao que digitada pelo usurio na pagina principal, como seu nome ou apelido. Logo aps de armazenarmos o nome ou apelido do usurio, ira se abrir uma janela atravs do script escrito em javascript (<script> window.open('chat.html', 'chat', 'toolbar=no,location=no,status=no,menubar=no,width=700,height=500'); window.close() </script>. Essa nova janela que ira abrir o nosso chat, que dividido em duas partes atravs do uso de um frame, uma que ira carregar o arquivo ler.php, que tem por finalidade mostrar as mensagens. E um outro arquivo que ser carregado, que tem por finalidade de enviar as nossas mensagens. Passo Vamos agora criar a janela que ser o nosso chat. Como eu tinha dito anteriormente essa nossa janela ser dividida em 2 partes, a primeira vai mostrar as mensagens digitada pelo o usurio e o segundo vai enviar as mensagens. Conforme a listagem abaixo:
PAG
43
<html> <head> <title>Chat</title> <meta http-equiv="Pragma" content="no-cache"> </head> <frameset rows="*,109" frameborder="no" border="0" framespacing="0"> <frame name="meio" src="ler.php"> <frame name="parte inferior" scrolling="no" noresize src="form.php"> <noframes> <body> <p>Esta pgina usa quadros mas seu navegador no aceita quadros.</p> </body> </noframes> </frameset> </html> Listagem 5. Cdigo do nosso chat. Passo O nosso proximo passo sera de criar o arquivo que enviara as mensagens alem de ter todos os usuarios conectados atraves de um arquivo txt. Conforme a listagem abaixo:
PAG
44
<html><body> <table width="100%" cellpadding="0" cellspacing="0" border="1" bordercolor ="#000000"> <tr> <td align="center"> <form action="lform.php" method="post" name="frmMsg"> <table width="600" border="0"> <tr> <td><b><i> <?php echo $nome; ?> </i></b> <p> <select size="1" name="dest"> <option selected>TODOS</option> <?php $arq="log.txt"; $fd = fopen ($arq, "r"); $i=0; while (!feof ($fd)) { $buffer = fgets($fd, 4096); $pieces = explode("|",$buffer); $reg[$i] =$pieces[0]; $i++; } fclose ($fd); for($k=0;$k < ($i-1);$k++){ $comp=$reg[$k]; for($j=$k+1;$j < $i;$j++){ if($comp==$reg[$j]){$reg[$j]="";} } } for($s=0;$s < $i;$s++){ $x=$reg[$s]; if ($x !="") { echo "<option value=\"$x\">$x</option>"; } } ?> </select><input size="44" name="msg"><input type="submit" value="Enviar" name="Enviar"> </p> </td> </tr> </table></form> </td></tr></table></body></html> Listagem 6. Cdigo da pagina que enviara os dados.
PAG
45
Passo: Iremos criar agora a pagina que ira processar a mensagem digitada pelo usuario, conforme o cdigo abaixo: <?php session_start(); $mesg="<p>$nome fala para $dest : $msg</p>\n\n"; $arq="reg.txt"; $i=0; $fd = fopen ($arq, "r"); while (!feof ($fd)) { $buffer = fgets($fd, 500); $reg[$i] =$buffer; $i++; } fclose ($fd); $fp_a=fopen($arq,"w"); for($k=0;$k < $i;$k++){ fputs($fp_a,$reg[$k]); } fputs($fp_a,$mesg); fclose($fp_a); echo "<html><head>"; echo "<meta http-equiv=\"Refresh\" "; echo "content=\"0;url=form.php\">"; echo "</head></html>"; ?> Listagem 7. Cdigo da pagina que vai processar os dados digitado pelo usurio. Podemos notar que a varivel $nome e as variveis $dest e $msg so concatenadas na varivel $mesg. Ela vai ser adicionada ao arquivo reg.txt, de modo que a mensagem mais recente seja a ltima. As quatro ltimas linhas so para o retorno para o formulrio do chat.
PAG
46
Passo: Agora vamos criar uma pagina que tem como funo ler os dados e mostrar quais usurios esto on-line. Veja a figura abaixo: <?php session_start(); include ("./user.php"); echo '<html><head><meta httpequiv="Refresh" content="10"></head><body>'; $arq="reg.txt"; $fd = fopen ($arq, "r"); while (!feof ($fd)) { $buffer = fgets($fd,4096); echo $buffer; } fclose ($fd); ?> Listagem 8. Cdigo que ira ler as informaes do usurios. O cdigo pequeno e alm de ler as mensagens ele tem outra funo. Voc pode notar que includo um script de nome user.php. este arquivo tem como funo mostrar os usurios on-line. O cdigo segue abaixo:
PAG
47
<?php $timer = 1; $filename = "log.txt"; if (!$datei) $datei = dirname(__FILE__)."/$filename"; $time = @time(); $ip = $nome; $string = "$ip|$time\n"; $a = fopen("$filename", "a+"); fputs($a, $string); fclose($a); $timeout = time()-(60*$timer); $all = ""; $i = 0; $datei = file($filename); for ($num = 0; $num < count($datei); $num++) { $pieces = explode("|",$datei[$num]); if ($pieces[1] > $timeout) { $all .= $pieces[0]; $all .= ","; } $i++; } $all = substr($all,0,strlen($all)-1); $arraypieces = explode(",",$all); $useronline = count(array_flip(array_flip($arraypieces))); $dell = ""; for ($numm = 0; $numm < count($datei); $numm++) { e $tiles = explode("|",$datei[$numm]); if ($tiles[1] > $timeout) { $dell .= "$tiles[0]|$tiles[1]"; } } if (!$datei) $datei = dirname(__FILE__)."/$filename"; $time = @time(); $ip = $nome; $string = "$dell"; $a = fopen("$filename", "w+"); fputs($a, $string); fclose($a); ?> Listagem 9. Cdigo que ira mostrar os usurios que esto on-line. Finalmente, agora nos podemos testar o nosso chat. Abra o browser e na url digite
http://localhost/teste.php.
PAG
48
PAG
49
<html> <body> <p align="center"><b><font size="5">CADASTRO </font></b></p> <form method="POST" action="insere_cliente.php"> <table border="1" width="100%"> <tr> <td width="19%">Cdigo</td> <td width="81%"><input type="text" name="CODIGO" size="64"></td> </tr> <tr> <td width="19%">Nome</td> <td width="81%"><input type="text" name="NOME" size="64"></td> </tr> <tr> <td width="19%">Endereo</td> <td width="81%"><input type="text" name="ENDERECO" size="64"></td> </tr> <tr> <td width="19%">Cidade</td> <td width="81%"><input type="text" name="CIDADE" size="64"></td> </tr> <tr> <td width="19%">Bairro</td> <td width="81%"><input type="text" name="BAIRRO" size="64"></td> </tr> <tr> <td width="19%">CEP</td> <td width="81%"><input type="text" name="CEP" size="64"></td> </tr> <tr> <td width="19%">FONE</td> <td width="81%"><input type="text" name="FONE" size="64"></td> </tr> <tr> <td width="19%">email</td> <td width="81%"><input type="text" name="EMAIL" size="64"></td> </tr> <tr> <td width="100%" colspan="2"> <p align="center"><input type="submit" value="Inserir" name="B_Inserir"></td> </tr> </table> </form> </body></html> Listagem 10. Cdigo que recebera os dados a serem incluido no banco de dados.
Curso Bacharelado em Cincia da Computao FACTEF PAG
50
Como podemos ver o codigo acima recebera os dados atraves de um formulario, que sera incluido no banco de dados pelo arquivo insere_cliente.php, este arquivo sera chamado pela action="<? echo "insere_cliente.php";?> que contm o cdigo que far a incluso no banco de dados. Passo: Agora vamos criar o arquivo que ira fazer a incluso dos dados no banco de dados. Salve este arquivo com o nome de insere_cliente.php. Conforme a figura abaixo: <?php $res1 = mysql_connect("localhost", "root", ""); if ($res1){ $sql = "insert into cadastro" ." (codigo, nome, endereco, cidade, bairro, cep, fone, email)" ." values ('$codigo', '$nome', '$endereco', '$cidade', '$bairro', '$cep', '$fone', '$email')"; mysql_select_db("cliente"); $res2 = mysql_query("$sql", $res1); if ($res2) { echo("Informaes adicionadas");} else { echo("Erro na incluso ".mysql_error()."\n"); } } else { echo("Erro na tentativa de conexo ".mysql_error()."\n"); } mysql_close($res1); ?> <form method="POST" action="cadastro_de_clientes.php"> <p><input type="submit" value="OK" name="OK"></p> </form>
Listagem 11. Cdigo para a insero dos dados no banco de dados. Na figura acima, ns podemos observar que temos a funo mysql_connect(), que tem como funo fazer a conexo com o banco de dados. Esta funo precisa de 3 parametros para o seu funcionamento, o primeiro parmetro passado o endereo ip onde se localiza a base de dados, como no nosso caso eu especifiquei o parmetro como localhost, pois nos estamos desenvolvendo na maquina local. J na linha que contm a instruo Ssql = insert into cadastro .(cdigo,nome,endereo,cidade,bairro,cep,fone,email) .values($codigo,$nome,$endereco,$cidade,$bairro,$cep,$fone,$email); tem como funo de fazer a insero no banco de dados atravs da instruo sql insert
Curso Bacharelado em Cincia da Computao FACTEF PAG
51
into cadastro. O comando insert utilizando para a insero no banco e o resto do paramentro into cadastro significa que os dados sero gravados na tabela cadastro. A funo mysql_select_db(), tem como objetivo selecionar a base de dados a ser utilizada para a insero na tabela utilizada dentro da base. Que no nosso caso a nossa base de dados tem como nome cliente. Passo: Agora vamos criar o arquivo que ira fazer a pesquisa na base de dados, conforme a figura abaixo: <html> <body> <table border="0" width="100%"> <tr> <td width="100%" bgcolor="#C0C0C0"> <p align="center"><b>LISTA DE CLIENTES</b></td> </tr> <tr> <td width="100%"></td> </tr> </table> <? $res1 = mysql_connect("localhost", "root", ""); mysql_select_db("cliente"); $sql = "select nome,cidade,email from cadastro order by nome"; $res2 = mysql_query("$sql", $res1); $linha=1; $total=0; ?> <table border="0" width=100%> <tr> <th bgcolor="#4B4A49" width="40%"> <p align="left"><font color="#FFFFFF">Nome</font></p> </th> <th bgcolor="#4B4A49" width="30%"> <p align="left"><font color="#FFFFFF">Email</font></p> </th> <th bgcolor="#4B4A49" width="30%"> <p align="left"><font color="#FFFFFF">Cidade</font></p> </th> <? while($valor = mysql_fetch_array($res2)) { if ($linha>0) { ?> <tr> <td bgcolor="#FFB871"><? echo $valor["nome"]; ?></td> <td bgcolor="#FFB871"><? echo $valor["email"]; ?></td> <td bgcolor="#FFB871"><? echo $valor["cidade"]; ?></td> </tr> <? Curso Bacharelado em Cincia da Computao FACTEF PAG 52
} else { ?> <tr> <td bgcolor="#FFDFBF"><? echo $valor["nome"]; ?></td> <td bgcolor="#FFDFBF"><? echo $valor["email"]; ?></td> <td bgcolor="#FFDFBF"><? echo $valor["cidade"]; ?></td> </tr> <? } $linha=$linha*-1; } mysql_free_result($res2); mysql_close($res1); ?></table></body></html> Listagem 12. Cdigo para fazer a pesquisa dos dados no banco de dados. Na figura acima a instruo $sql = "select nome,cidade,email from cadastro order by nome"; tem como finalidade buscar os dados dentro da base de dados. utilizado o comando sql select utilizado para buscar dados em uma base de dados, em no nosso caso o comando select vai buscar todos os dados mencionado como parmetro nome, cidade, email da tabela cadastro e este resultado ira ser ordenado atravs do parmetro order by nome. Passo Agora iremos criar um arquivo com nome de index.php que vai ter dois links, um para chamar a pagina de cadastro e outro link para chamar a pagina de pesquisa dos dados. Conforme a figura abaixo: <html> <body> <h1 align="center"> Sistema de cadastro e pesquisa de dados</h1> <p><a href="cadastro_de_clientes.php">Clique aqui para Cadastrar os seus dados</a></p> <p><a href="pesquisa_cliente.php">Clique aqui para Pesquisar os dados da base de dados </a></p></body></html> Listagem 13. Pgina principal. Para finalizar j podemos testar o nosso site de incluso e pesquisa de dados em uma base de dados MySql, basta digitar na url da sua maquina o endreo localhost/o nome do seu arquivo principal. Que no nosso caso o nome index.php.
Curso Bacharelado em Cincia da Computao FACTEF PAG
53
Bibliografia
CONVERSE, Tim; Park, Joyce. PHP4 a Bblia. Campus SOARES, Bruno Augusto Lobo. Aprendendo a linguagem PHP. Cincia Moderna. NIEDERAUER, Juliano. Integrando PHP 5 com MySQL: Guia de Consulta Rpida. So Paulo: Novatec, 2005. http://linhadecodigo.com.br/artigos.asp?id_ac=227 http://www.truquesedicas.com/tutoriais/php/mysql/00001a.htm http://www.php-gtk.com.br/index.php?class=Artigo::ArtigoFormControl::View(59) http://www.numaboa.com.br/informatica/webmaster/htaccess/htaccess1.php http://scriptbrasil.com.br/forum/index.php?showforum=59 http://www.phpbrasil.com/
PAG
54