No último artigo estabelecemos uma ligação ao servidor de bases de dados MySQL, e vamos agora fazer algo interessante com esta ligação. Tal como indiquei na introdução ao MySQL com PHP, interagimos com o servidor MySQL enviando código SQL através de funções PHP, mais especificamente a função mysql_query().

php_mysql_logo

Para obtermos dados através de SQL, usamos um SELECT. Existem várias formas de usarmos o SELECT, mas esta é a forma mais simples, e normalmente tem esta forma:

 

Esta query selecciona os dados da coluna chamada “nome_coluna” da tabela com o nome “nome_tabela” e retorna todas as linhas que lá existirem. No artigo de introdução ao MySQL com PHP inserimos algumas linhas com dados na nossa tabela utilizadores_teste, onde temos as colunas id, nome e pais. Para obtermos estes dados, a query será feita desta forma:

 

Este é o SQL necessário para obtermos os dados. Vamos agora colocar o PHP a executar este SQL com a função mysqy_query():

 

A função mysql_query() simplesmente envia o código SQL para o servidor MySQL que depois retorna um link de resultados. De seguida temos de usar uma das muitas funções relacionadas do PHP para podermos então usar este resultado. Por exemplo, podemos ver quantas linhas foram retornadas com a função mysql_num_rows() (a ligação ao MySQL já deve estar efectuada, como mostrado acima):

 

Claro que só quisesse-mos saber o número de linhas, existem formas mais eficientes para tal e não teríamos de seleccionar todas as 3 colunas. Em vez de obtermos apenas o número de linhas, vamos então obter alguns dos dados contidos na tabela:

 

A função mysql_result() consegue dar-nos apenas um pedaço dos dados do link de resultados. Como parâmetros, especificámos o link da query, o índice da linha e o nome da coluna da qual queremos obter os dados. Neste caso obtemos o resultado da referência de resultados da $query, usamos o resultado da primeira linha retornada (linha número zero) e obtemos os dados da coluna chamada “nome”. Com isto obtemos o primeiro nome na tabela, que é depois mostrado.

Na maioria das situações precisamos de obter todas as linhas dos dados que seleccionamos, em conjunto com as colunas que seleccionamos. Podemos obter estes resultados com a função mysql_fetch_array(), que simplesmente nos obtém uma linha inteira de dados no formato de array, enquanto move um ponteiro interno de linha em linha, permitindo assim obtermos todas as linhas daí resultantes. Esta forma é excelente para usarmos com um loop, de forma a obtermos todas as linhas umas a seguir às outras. Vamos ver este exemplo onde fazemos exactamente isso:

 

Usamos um loop While, no qual atribuímos o resultado da função mysql_fetch_array() à variável $row em cada iteração. Funciona porque a função mysql_fetch_array() retorna FALSE quando já não existem mais linhas, o que faz com que o loop While termine. Enquanto existir alguma linha, a função mysql_fetch_array() coloca todas as colunas e os seus dados na variável $row, aos quais podemos aceder pelo mesmo nome constante no código SQL. Neste exemplo, temos acesso ao id, nome e pais, mas para o tornar mais simples apenas usei o nome e o pais.

Estas são as formas mais básicas de obtermos os dados da base de dados MySQL. Como podem ver é extremamente simples, já que o PHP tem um vasto conjunto de funções para tal, mas existe muito mais para trabalharmos com o MySQL e definitivamente mais para escrevermos código SQL.

Artigo anterior do tutorial PHP:

Ligar ao MySQL com PHP

Artigo seguinte do tutorial PHP:

A clausula WHERE no MySQL

Tiago Ramalho

Tiago Ramalho é um profissional de Informática interessado em Internet, Programação .NET e PHP e blogging. Nos tempos livres escreve nos interessespessoais.com sobre Jardim, Saúde, Sistemas, utilitários e outros temas relacionados com informática.

More Posts - Website - Twitter - Pinterest - Google Plus