PHP 1.1 O PHP
O PHP é uma linguagem de programação orientada a objetos de código aberto e interpretada que, apesar de muito poderosa, é de fácil aprendizagem. Seu principal uso é na programação de páginas HTML dinâmicas para Internet, onde é conhecida como uma linguagem de programação de script serverside (do lado do servidor), ficando embutida dentro do código da página HTML. Suas principais características são: velocidade, robustez, simplicidade, eficiência, portabilidade (independência de plataforma) e sintaxe similar a C e PERL. O PHP PHP é conhe conheci cido do como como a ling lingua uage gem m de prog progra rama maçã ção o para para Inte Interne rnett mais mais util utiliz izad ada. a. É praticamente a linguagem de programação mais utilizada na Internet (do lado do servidor). A linguagem PHP suporta: •
Bancos de dados – Adabas, dBase, Direct MS-SQL, Empress, FilePro, FrontBase,
Hyperwave, IBM DB2, Informix, Ingres, InterBase, mSQL, MySQL, Oracle, Ovrimos, PostgreSQL, Solid, SQLite, Sybase, Unix dbm e Velocis, além de suporte a ODBC (Open Database Connection). •
Protocolos como – LDAP, IMAP, SNMP, NNTP, POP3, HTTP e COM, além do suporte a
sockets. Processa XML suportando os padrões SAX, DOM e extensão XSL. •
•
Sistemas operacionais – Windows, Linux, FreeBSD, Mac OS, OS/2, AS/400, Novell
Netware, RISC OS, IRIX e Solaris.
1.2 Histórico
A linguagem PHP (Personal Home Page) foi criada por Rasmus Lerdorf, em 1994, para que ele pudesse ter informações sobre as visitas feitas ao seu currículo em sua página pessoal. Em 1995, foi liberada a primeira versão ao público, conhecida como PHP Tools, basicamente um conjunto de utilitários simples: livro de visitas, contador de visitas e alguns outros. Em 1997, o interpretador foi reescrito e rebatizado como PHP/FI (PHP Form Interpreter). Essa versão incorpora a interpretação a dados de formulários HTML e suporte a mSQL. Seu uso cresceu e muitos passaram a contribuir com o projeto; estima-se que esse uso tenha subido de 15 mil para mais de 50 mil sites nesse ano. Com a explosão do uso, o projeto deixou de ser executado por Rasmus com contribuições de outras pessoas para ter uma equipe de desenvolvimento. O interpretador foi novamente reescrito por Zeev Suraski e utilizado como base para a versão 3 do PHP, que introduzia recursos ainda tímidos de orientação a objetos. Pouco depois, Zeev e Andi Gutmans escreveram o PHP 4 a partir do zero. Esta versão ampliava a orientação a objetos. O nome da linguagem sempre se manteve PHP, mas, com o crescimento da linguagem, seu sign signif ific icad ado o pass passou ou do mode modest sto o Pers Person onal al Home Home Page Page para Hypertext Hypertext Preproces Preprocessor sor , nome democraticamente democraticamente escolhido por votação na comunidade que o mantém. Em junho de 2004, foi lançada oficialmente a versão 5 do PHP, trazendo tantas modificações em relação à versão 4 que fez com que muitos programas deixassem de funcionar, o que causou atraso em sua adoção. Somente em julho de 2007 foi anunciada, oficialmente, no site do PHP, PHP, a descontinuidade da
versão 4 e a recomendação de que, até o final do ano, as aplicações fossem adaptadas para a versão 5. Mesmo assim ainda há muitos programas rodando na versão 4. Apesar de a versão 4 já ser muito poderosa, infelizmente, criou o mito de que qualquer pessoa poderia programar em PHP. Mas isso não é verdade! Talvez seja fácil para um leigo escrever um programa, mas, com certeza, não será fácil programar. programar. Contudo, essa imagem vem mudando e, cada vez mais, o PHP é visto como uma linguagem de programação para ser explorada em grandes projetos. Na versão 5, o PHP finalmente chegou à idade adulta. Seu mecanismo interno foi novamente reescrito, por completo, para operar com o Zend Engine 2.0 , o que proporcionou significativo aumento na velocidade de execução e performance na programação orientada a objeto. O Zend Engine é a junção dos nomes do Zeev Suraski e Andi Gutmans. A promessa de que a versão 6 retirará muitas características do PHP, PHP, para torná-lo mais prático, já está gerando muitas discussões em listas de desenvolvedores sobre o problema do legado (programas escritos na versão 5 que podem deixar de funcionar). 1.3 Instalação 1.3.1 Wamp5
Temos vários e ótimos servidores web que dão suporte para PHP. De fato, o Wamp não é um servidor web, mas um pacote de instalação que contém o servidor web Apache com: o módulo de interpretação do PHP; o banco de dados MySQL; o PHPMyAdmin, que é um módulo de administração do MySQL e o SQLite, uma ferramenta de administração de bancos de dados SQL. O Wamp5 é muito simples de ser instalado e é compatível com Windows. ( http://baixaki.ig.com.br/download/wamp http://baixaki.ig.com.br/download/wamp5.htm) 5.htm) 1.3.2 PHP Editor
Para editar o código dos programas PHP, recomendamos um um editor que reconheça a sintaxe da linguagem e coloque os comandos em cores diferentes; isso pode parecer besteira, mas facilita muito a programação. Um ótimo editor é o PHP Editor que, além de reconhecer a sintaxe PHP, também reconhece a sintaxe HTML, permite a edição de vários arquivos simultaneamente e recurso de autocomplemento de funções. O PHP Editor é um editor leve, que possui possui recursos avançados avançados e ainda tem como diferenci diferenciais ais o fato de ter sido desenvolvido em terras tupiniquins. (http://superdownloads.uol.com.br/download/65/php-editor/ http://superdownloads.uol.com.br/download/65/php-editor/;; Sua instalação é extremamente simples, basicamente um avançar, avançar e concluir.
2 A linguagem PHP 2.1 Primeiro Programa
Exemplo! "; ?>
1. Digite Digite a página acima acima usando o PHP Editor Editor.. 2.
Salv Salvee o arqu arquiv ivo o no dire diretó tóri rio o (pas (pasta ta)) “www”, cria criado do pelo elo Wamp amp com com o nome nome
“exemplo.php”. Provavelmente, o caminho da pasta “ www” é “C:\Wamp\www ”. 3.
Abra um navegador Internet e digite o endereço “ http://localhost/ ”. Se tudo der certo,
será apresentada uma página com as informações do servidor. servidor.
2.3 Sintaxe Básica 2.3.1 Delimitador PHP
Além do delimitador , como utilizamos em nosso primeiro programa, também podemos utilizar em PHP o delimitador escrito, das seguintes formas:
•
<script language=”php”> ... <script>
•
... ?>
•
<% ... %>
Contudo, vale destacar que o indicado é você utilizar a forma como fizemos no primeiro programa. As demais formas podem necessitar da configuração do interpretador PHP para serem aceitas. 2.3.2 Separador de Comandos
PHP utiliza o ponto-e-vírgula como separador de comandos, não como terminador; isso significa que o último comando não necessita de ponto-e-vírgula. Mas não se preocupe com isso, é normal colocarmos ponto-e-vírgula em todos os comandos. 2.3.3 Comentários
PHP permite comentários de linha e de bloco. Para fazer comentários de linha, você pode utilizar
o tradicional barra-barra, “//” ou o cerquilha “ #”. Para comentários de bloco, foi mantido apenas o tradicional barra-asterisco “/* ... */”.
2.3.4 Atribuição
Em PHP, como na imensa maioria das linguagens de programação, o igual “=” é utilizado para atribuição de valores.
2.3.5 Operadores
Aritméticos +
Adição
-
Subtração
* /
Multiplicação Divisão
%
Módulo – Resto da Divisão Relacionais
Igual Diferente
== !=
Maior Menor
> <
Menor igual
<=
Lógicos &&
and
E
||
or
Ou
xor
Ou exclusivo
!
Não
Além dos operadores acima, PHP ainda possui o operador de concatenação de string, o ponto final “.” e a possibilidade de escrever operadores abreviados, como em C ( +=, -+, *=, /=, %=, .=) e os operadores de incremento (++) e de decremento (--) . O exemplo abaixo mostra o uso desses operadores.
Comandos
Comando
Resultado
Anteriores
$a=5; $b=2; $a=5; $b=2; $a=5; $b=2; $a=5; $b=2;
$c=$a+$b; $c=$a/$b; $c=$a%$b; ($a==$b)
$c passará a valer 7 $c passará a valer 2.5 $c passará a valer 1 Falso
$a=5; $b=2; $a=5 $a=5;; $b= $b=2; 2; $c=3 $c=3;;
($a>=$b) (($a (($a>= >=$b $b)) && && ($b==$c)) $a=5 $a=5;; $b= $b=2; 2; $c=3 $c=3;; (($a (($a>= >=$b $b)) or or ($b==$c)) $a=5; $b=2; (!($a==$b)) $a=”PH”; $b=”P”; $c=$a.$b; $a=5; $b=2; $a+=$b; $a=5; $a++; $a=5; $a--; $a=5; $b=2; $c=3; $d=$a+$b*$c; $a=5; $b=2; $c=3; $d=($a+$b)*$c;
Verdadeiro Falso Verdadeiro Verdadeiro $c passará a valer “PHP” $a passará a valer 7 $a passará a valer 6 $a passará a valer 4 $d passará a valer 11 $d passará a valer 21
Os parênteses “(...)” são utilizados como operador de precedência, como vimos nos dois últimos exemplos acima. Em PHP, toda condição deve, obrigatoriamente, estar entre parênteses.
2.4 Variáveis
O PHP utiliza tipagem fraca de variável com checagem dinâmica; isso significa que as variáveis não precisam ser declaradas e podem conter valores de diferentes tipos ao longo da execução do programa. Apesar disso, podemos podemos afirmar que PHP suporta os seguintes tipos de dados: inteiro (integer ou longint ); ); •
•
ponto-flutuante (float ou double );
•
caracteres (string);
•
vetor (array ); );
•
objeto (object ). ).
O PHP possui uma particularidade, com relação ao delimitador de valores string, que pode ser aspas simples ( ' ) ou dupla ( " ). Utilizando aspas simples, o PHP entenderá o valor exatamente como está (exceto os caracteres especiais); utilizando aspas duplas, o PHP interpretará as variáveis contidas. Principais caracteres especiais: Forma de Escrita
Será Impresso
\\
\
\$
$
\’
’
\”
”
O PHP não possui um tipo booleano (verdadeiro ou falso), mas é capaz de avaliar expressões lógicas. A maneira escolhida foi a mesma que a linguagem C, através de um valor inteiro: 0 (zero), para falso, e qualquer valor diferente de zero (geralmente 1), para pa ra verdadeiro.
2.4.1 Vetores e Registros
O PHP utiliza um conceito um pouco diferente para trabalhar com vetores, o que permite que a mesma estrutura seja utilizada também para registros. Se você está acostumado aos tradicionais vetores com índices numéricos e seqüenciais, vai estranhar um pouco. De fato, em PHP, um vetor é um repositório, onde os índices são chaves de acesso; estes índices podem ser de qualquer tipo. Mesmo sendo inteiros, não precisam ser seqüenciais. Exemplo: vetor
2.4.2 Conversão de Tipos
É possível converter valores de um tipo para outro utilizando, assim como na linguagem C, o typecast do PHP. Para isso, basta escrever antes do valor o tipo desejado entre parênteses. Abaixo são apresentados os typecasts permitidos.
Typecasts
(int), (integer) (real), (d (double), (f (float)
Converte para
Inteiro Ponto-flutuante
(string)
Caracteres
(array)
Vetor
(object)
Objeto
Exemplos: $a = 1;
// $a é inteiro e vale 1
$a = (double)$a; // $a passa a ser ponto-flutuante e valer 1.0 $b = 1.5; // $b é ponto-flutuante e vale 1.5 $b = (int) $b; // $b passa a ser inteiro e valer 1
Outra Outra maneir maneiraa de conv convert erter er variáv variáveis eis,, é utiliz utilizand ando o a função função “settype() ”, onde onde deve deve ser ser inform informado ado como parâme parâmetro tross o nome nome da variá variável vel,, a ser ser conve converti rtida da e um valor valor string com o tipo (typecasts) desejado. Por exemplo: $a = 1.5; // $a é ponto-flutuante settype($a, “int”); // $a é transformada para inteiro e passa a valer 1.
2.4.3 Constantes
Para definir constantes em PHP, PHP, deve-se utilizar a função define() . O exemplo abaixo define e utiliza a constante pi: define("pi", 3.1415926536); echo "O valor de pi é ".pi; Obs.: uma constante nunca poderá conter vetores.
2.4.4 Variáveis de Ambiente
Variável Variável de ambiente, também conhecida por constante de ambiente, é uma variável pré-definida (não precisa ser declarada), que armazena um valor especial. PHP possui várias variáveis de ambiente. A função “phpinfo()” apresenta a listagem de todas as variáveis de ambiente e seus valores. Exemplos:
Nome
$_SERVER $_SERVER["HT ["HTTP_US TP_USER_A ER_AGENT" GENT"]] $_SERVER["REMOTE_A E_ADDR"] $_SERVER["SCRIPT_FILENAME"]
Descrição
Nome e versão versão do navegado navegadorr do cliente. cliente. Endereço IP IP do do cl cliente. Caminho e nome do programa sendo executado.
3. Comandos da Linguagem PHP
3.1 Comandos de Seleção 3.1.1 Bloco de Comandos
PHP também utiliza o conceito de bloco de comandos utilizado em C, Pascal e Java. Nessa idéia, um grupo de comandos pode ser visto como um único comando, em determinadas circunstâncias. Em PHP, os blocos são delimitados por chaves “ { ... }”.
3.1.2 IF
Em PHP, o “if ” funciona com o conceito de blocos de comando. Isso significa que, se a condição for válida, será executado o próximo comando. Se você necessitar que o “ if ” execute mais de um comando, basta colocá-los dentro de um bloco. Exemplo: $a=1; if ($a == 1) echo "Um"; else { echo "outro valor que não um"; echo "
"; } O PHP também incorpora, o conceito de marcador de término, como ocorre na linguagem de programação ASP. O exemplo abaixo faz exatamente o mesmo que o anterior, utilizando o marcador de término “endif ” para informar ao PHP o término de um comando “if ”. $a = 1; if ($a == 1): echo "um"; else: echo "outro valor que não um"; echo "
"; endif; Observe os dois pontos “ : ” colocados após o “ if ” e o “else”. Outra flexibilização que existe no comando “if ” é o “elseif ”, ”, para possibilitar ao comando “ if ” avaliar várias condições, funcionando de forma similar ao comando “ switch”. Exemplo: $a=1; if ($a == 1) echo "um"; elseif ($a == 2) echo "dois"; else { echo "outro valor que não um ou dois"; echo "
"; }
O “else” e o “elseif ” são opcionais dentro do “ if ”, ”, podendo não ser utilizados. O “elseif ” pode ser utilizado mais de uma vez dentro do “ if ”.
3.1.3 SWITCH
O comando “switch” e “elseif ” podem ser utilizados ut ilizados para resolver o mesmo problema, mas, nesses casos, o “ switch” é mais recomendado, por questões de performance e higiene de programação (código limpo e de fácil leitura). Basicamente, o “ switch” avalia vários valores de uma mesma variável; já o “ elseif ” pode avaliar qualquer condição. Exemplo: $a=1; switch ($a) { case 1: echo "um"; break; case 2: echo "dois"; break; default: echo "outro valor que não um ou dois"; echo "
"; } Assim como o “ else” do comando “ if ”, ”, o “default” do “switch” é opcional; caso exista, será executado nas situações onde nenhum “case” seja avaliado como igual. Outro ponto é o comando “break”, que interrompe a seqüência de execução do “ switch”. Isso normalmente é necessário, porque o comando “switch” foi desenhado para, ao avaliar um “ case” como igual, executar todos os comandos abaixo, até o final do “ switch”, mesmo que estes estejam em outro “ case”. Uma particularidade do comando “switch” do PHP é a possibilidade de avaliar valores do tipo caracter .
3.2 Comandos de Repetição 3.2.1 WHILE
O comando de repetição “ while” é o mais simples dos comandos de repetição. Ele avalia a condição e executa o(s) comando(s) até que a condição retorne falso. Assim como o “ if ”, também ta mbém permite a utilização de blocos de comandos e marcador de término. $a = 1;
$a = 1;
while ($a <= 10) { echo "$a
"; $a++;
while ($a <= 10): echo "$a
"; $a++;
}
endwhile;
O while executa no mínimo zero e no máximo N vezes. Zero porque, ao chegar no “while”, a condição pode ser avaliada como falsa e não chegará a executar a primeira vez, N porque pode entrar em um “loop infinito”, repetindo eternamente, caso em que a condição nunca seria avaliada como falsa. Isso ocorreria no exemplo acima se testássemos ($a > 0). 3.2.2 DO..WHILE
O comando de repetição “ do..while ” funciona de maneira semelhante ao “ while”, a diferença é que a condição é avaliada após a primeira execução, com isto ele executa no mínimo uma vez e no máximo N vezes. Exemplo: $a = 1; do { echo "$a
"; $a ++; } while ($a <= 10); 3.2.3 FOR
O comando de repetição “ for” excuta repetição controlada, em que o programador define o número de vezes que irá repetir, mesmo que esse número seja o valor de uma variável. O comando for possuir três partes bem definidas: Inicialização – Executada apenas a primeira vez, antes da execução do(s) comando(s) e •
serve para definir o valor da variável de controle. •
Condição – Executada todas as vezes, a primeira vez é antes da execução do(s)
comando(s) e serve para interromper a repetição; na realidade, o “ for” tem funcionamento bastante similar ao “while”, executando enquanto essa condição for avaliada como verdadeira. Incremento – Ou decremento, é executado a partir da segunda vez, antes da segunda •
execução do(s) comando(s) e serve para alterar o valor da variável de controle. Normalmente utiliza um incremento ( ++) ou decremento ( --). O “for” também pode ser escrito com marcador de término. Sintaxe: for (inicialiação; condição; incremento) { comando(s); } Esse exemplo apresenta o for escrito, com marcador de término. A execução do exemplo produzirá o mesmo resultado dos exemplos de “ while” e “do..while ”, como segue;
for ($a=1; ($a <= 10); $a++): echo "$a
"; endfor; 3.2.4 Ruptura de Fluxo
O comando “break”, que funciona como um interruptor de fluxo de comandos. Isso porque ele tem o poder de interromper a seqüência de execução de um bloco de comandos de repetição (“ while”, “do..while ” e “for”, além do já visto “ switch”), saltando para o próximo comando após o término do bloco. No exemplo abaixo, seriam impressos os valores de 10 a 100, mas como o “ break” interrompe a repetição ao encontrar um múltiplo de 7, sendo impresso apenas de 10 a 13. for ($a=10; ($a <= 100); $a++) { if (($a % 7) == 0) break; echo "$a
"; } O comando “continue” desvia o fluxo de execução para a condição do comando de repetição. for ($a=10; ($a <= 100); $a++) { if (($a % 7) == 0) continue; echo "$a
"; } Ao encontrar um múltiplo de 7, o comando “ continue ” irá desviar o fluxo de execução para a condição, fazendo com que o comando “ echo” não seja executado; com isso, o resultado final desse programa será a impressão dos números de 10 a 100, com exceção dos múltiplos de 7.
3.3 Subprogramas
Para o PHP, todo subprograma (procedimento ou função) é escrito como função. Uma vez que a checagem de tipos em PHP é dinâmica, o tipo de retorno não necessita ser declarado; com isso, a única diferença na escrita de um procedimento ou função é a presença do comando de retorno no corpo da função. Devido a essa ausência de tipos, é recomendável que o programador documente suas funções para facilitar a compreensão do código. O exemplo abaixo mostra a declaração de uma função e uma forma eficiente de documentá-la. function media ($n1, $n2) { // float function media(float, float) $med = ($n1 + $n2) / 2;
return $med; } O comando return é utilizado para retornar o valor da função, mas é opcional; se o retirarmos, essa função passa a ser um procedimento. Apesar das particularidades acima, subprogramas em PHP se assemelham às outras linguagens de progr programa amação ção.. Em PHP PHP,, as funçõe funçõess també também m deve devem m ser declar declarada adass antes antes de serem serem chamad chamadas, as, recebendo parâmetros por valor ou referência. Apesar de não ser possível a uma função retornar mais que um valor é possível retornar um vetor e, por conseqüência, mais que um valor. valor.
Banco de Dados 5.1 Acessando Bancos de Dados
Um dos pontos fortes do PHP é a facilidade para o acesso a bancos de dados. Neste curso nos concentraremos apenas no MySQL, que compõem, ao lado do PHP, a dupla preferida pela maioria dos programadores PHP, PHP, principalmente no ambiente Linux com Apache. No MySQL, assim como em quaisquer servidores de bancos de dados, há procedimentos e regras para acessar os dados: •
Conectar ao servidor.
•
Abrir banco de dados.
•
Executar comandos SQL.
•
Fechar o banco de dados.
•
Desconectar do servidor.
Geralmente, os dois últimos não precisam ser executados, pois, quando o programa termina, o banco é fechado e a conexão encerrada automaticamente.
5.2.1 Conectar ao Servidor
A conexão a um servidor de banco MySQL em PHP é feita através da função “ mysql_connect() ”, que tem como parâmetros: o endereço do servidor (host), o nome do usuário (login) e a senha para a conexão. A função retorna o identificador da conexão, que será utilizado ut ilizado em outras operações de banco. Sintaxe: mysql_connect(Host, mysql_connect(Host, usuario, senha) Exemplo: $conexao = mysql_connect("localhost", mysql_connect("localhost", "root", ""); No exemplo, conectamos um servidor de banco que roda na mesma máquina do servidor de página (localhost), utilizando um usuário pré-definido (root), sem senha (isso porque, no banco de dados, não foi definida senha para esse usuário).
5.2.2 Abrir Banco de Dados
A abertura (ou seleção) do banco de dados é feita através da função “mysql_select_db() ”, que tem como parâmetros: o nome do banco de dados e o identificador da conexão (retornado pela função “mysql_connect() ”). A função retorna 0 (zero) em caso caso de falha ou 1 em caso de sucesso. Sintaxe: mysql_select_db(NomedoBanco mysql_select_db(NomedoBanco,, Conexão) Exemplo: $resultado = mysql_select_db("bdteste", mysql_select_db("bdteste", $conexao); if ($resultado == 0) echo "ERRO DE CONEXAO AO BANCO DE DADOS."; else { ... } 5.2.3 Executar Comandos SQL
A execução de comandos, ou query, SQL ( Structured Query Language ) é feita através da função “mysql_query() ”, que tem como único parâmetro o comando SQL a ser executado. A função retorna 0 (zero), em caso de falha, ou 1, em caso de sucesso; ou seja, a consulta está sintaticamente correta e foi executada pelo servidor. Exemplo: $sql = "INSERT INTO ALUNO(ALU_MATR, ALU_NOME, ALU_RG, ALU_CPF, ALU_IDADE) VALUES ('$txtmatr', '$txtnome', '$txtrg', '$txtcpf', '$txtidade' )"; $resultado = mysql_query($sql); mysql_query($sql); if ($resultado == 0) { echo "Erro de execucao da instrucao SQL"; } else { echo "Registro gravado com sucesso"; }
5.2.4 Executar Comandos SQL com Retorno
A execução de comando SQL, que retorna valores (SELECT), também é feita através da função “mysql_query() ”. Para capturarmos os valores retornados, devemos armazenar o retorno da função em uma variável, que será tratada pela função “ mysql_result() ”, tendo como parâmetros: o identificador do comando SQL (retorno da função “m ysql_query() ”), número do registro desejado e o identificador do campo desejado. A função retorna o valor do campo especificado na linha especificada. Um comando SELECT pode retornar vários registros (linhas ou tuplas), estando cada valor em um registro. Isso significa que, para um resultado com vários registros, é preciso controlar o número do registro para tratá-lo. Para sabermos quantos registros foram retornados, podemos utilizar a função “mysql_num_rows() ”, que tem como parâmetro o identificador do comando SQL (retorno da função “mysql_query() ”). A numer umeraç açãão dos reg regist istros ros inic inicia ia-s -see por 0 (zer (zero o); assi assim, m, se a funç função ão “mysql_num_rows() ” retorn retornar ar 2, signifi significa ca que foram foram retornad retornados os 2 regist registros ros,, sendo sendo o prime primeiro iro o número 0 e o segundo o número 1. O número do último será sempre o valor retornado pela função menos 1. Exemplo: $sql = "SELECT * FROM ALUNO ORDER BY ALU_NOME"; $resultado = mysql_query($sql) ; if ($resultado != 0) { for ($i = 1; $i <= mysql_num_rows($resultado) ; $i++) { echo "Matrícula: " . mysql_result($resultado, mysql_result($resultado, $i -1, "alu_matr") . "
"; echo "Mome : " . mysql_result($resultado, mysql_result($resultado, $i -1, "alu_nome") . "
"; echo "Idade : " . mysql_result($resultado mysql_result($resultado,, $i -1, "alu_idade") . "
"; "
"; echo "RG : " . mysql_result($resultado, mysql_result($resultado, $i -1, "alu_rg") . "
"; echo "CPF : " . mysql_result($resultado, mysql_result($resultado, $i -1, "alu_cpf") . "
"; echo "
"; } } else { echo "Erro de execucao da instrucao SQL"; } }