Beruflich Dokumente
Kultur Dokumente
Este material foi produzido com base nos livros e documentos citados abaixo, que
possuem direitos autorais sobre o contedo. Favor adquiri-los para dar continuidade ao
curso.
Livro: Desenvolvendo Websites com PHP
Apostila da Diviso de Servios Comunidade Centro de Computao Unicamp
Para tratar as informaes retornadas pelos comandos SQL, existe uma srie de funes
que podem ser utilizadas. Elas so especificadas na tabela abaixo.
MySQL
Mysql_affected_rows
Mysql_fetch_array
Mysql_fetch_object
Mysql_fetch_row
Mysql_result
Mysql_num_rows
Mysql_num_fields
Mysql_field_name
Descrio
Retorna o nmero de linhas afetadas por
uma operao.
Armazena a linha atual do resultado em
um array associativo.
Retorna uma linha como um objeto.
Armazena a linha atual do resultado em
um array.
Retorna uma coluna do resultado.
Retorna o nmero de linhas de uma
consulta.
Retorna o nmero de colunas de uma
consulta.
Retorna o nome de uma coluna em uma
consulta.
Observao:
A operao mysqli_affected_rows usada nas operaes de insero (INSERT),
atualizao (UPDATE) e excluso (DELETE). J a operao mysqli_num_rows
utilizada em consultas (SELECT) para obtermos o nmero de linhas que foram
retornadas.
Exemplos:
1 Programa que apaga todo o contedo de uma tabela no MySQL
<?php
include "conecta_mysql.inc";
$resultado = mysql_query ("DELETE FROM produtos");
?>
?>
include "conecta_mysql.inc";
$resultado = mysql_query ("SELECT * FROM produtos");
$linhas = mysql_num_rows ($resultado);
mysql_close($conexao);
echo "<p align=\"center\">A consulta retornou $linhas registros!</p>";
Para obter os valores dos campos retornados por uma consulta podemos utilizar a
funo mysql_result que possui a sintaxe:
mysql_result (recurso resultado, int linha [, misto coluna])
Onde:
Resultado o nome da varivel que recebeu o resultado da funo mysqli_query.
Linha o nmero da linha que desejamos recuperar (comeando em zero).
Coluna o nmero da coluna (comeando de zero) ou o nome do campo da tabela.
Exibindo alguns valores da primeira linha retornada de uma consulta:
<?php
?>
include "conecta_mysql.inc";
$resultado = mysql_query ("SELECT * FROM produtos");
$codigo = mysql_result($resultado, 0, 0);
$nome = mysql_result($resultado, 0, nome_produto);
$preco = mysql_result($resultado, 0, preco);
mysql_close($conexao);
echo "Cdigo do produto: $codigo <br>";
echo "Nome do produto: $nome <br>";
echo "Preo do produto: $preco";
include "conecta_mysql.inc";
$resultado = mysql_query ("SELECT * FROM produtos");
$linhas = mysql_num_rows ($resultado);
for ($i=0 ; $i<$linhas ; $i++)
{
$nome = mysql_result($resultado, $i, nome_produto);
$preco = mysql_result($resultado, $i, preco);
?>
}
mysql_close($conexao);
Outra forma de obter os valores retornados de uma consulta por meio das funes
mysql_fetch_row e mysql_fetch_array. Essas funes colocam as linhas retornadas
(uma por vez) em um array. A diferena entre as duas que a segunda permite o acesso
aos ndices do array por chave associativa (nome dos campos) e a segunda funo
utiliza somente ndices numricos. Sintaxe:
mysql_fetch_row( recurso resultado)
mysql_fetch_array( recurso resultado)
O prximo exemplo imprimi os valores de alguns campos da tabela produtos vista
anteriormente.
<?php
?>
include "conecta_mysql.inc";
$resultado = mysql_query ("SELECT * FROM produtos");
$linhas = mysql_num_rows ($resultado);
for ($i=0 ; $i<$linhas ; $i++)
{
$registro = mysql_fetch_row($resultado);
echo "Cdigo do produto: $registro[0] <br>";
echo "Nome do produto: $registro[1] <br>";
echo "Descrio: $registro[2] <br>";
echo "Preo: $registro[3] <br>";
echo "Peso: $registro[4] <br>";
echo "Informaes adicionais: $registro[7] <br><br>";
}
mysql_close($conexao);
include "conecta_mysql.inc";
?>
$operacao = $_POST["operacao"];
include "conecta_mysql.inc";
if ($operacao=="incluir")
{
$codigo = $_POST["codigo"];
$nome = $_POST["nome"];
$descricao = $_POST["descricao"];
$preco = $_POST["preco"];
$peso = $_POST["peso"];
$cc = $_POST["cc"];
$cs = $_POST["cs"];
$ad = $_POST["ad"];
$sql = "INSERT INTO produtos VALUES ";
$sql .= "('$codigo','$nome','$descricao',$preco,$peso,$cc,$cs,'$ad')";
$resultado = mysql_query ($sql);
echo "Produto includo com sucesso!";
?>
}
elseif ($operacao=="excluir")
{
$codigo = $_POST["codigo"];
$sql = "DELETE FROM produtos WHERE codigo_produto=$codigo";
$resultado = mysql_query ($sql);
$linhas = mysql_affected_rows();
if($linhas==1)
{ echo "Produto excludo com sucesso!"; }
else
{ echo "Produto no encontrado!"; }
}
elseif ($operacao=="mostrar")
{
$resultado = mysql_query ("SELECT * FROM produtos");
$linhas = mysql_num_rows ($resultado);
echo "<p><b>Lista de produtos da loja</b></p>";
for ($i=0 ; $i<$linhas ; $i++)
{
$reg = mysql_fetch_row($resultado);
echo "$reg[0] <br>$reg[1] <br>$reg[2] <br>$reg[3] <br>";
echo "$reg[4] <br>$reg[5] <br>$reg[6] <br>$reg[7] <br><br>";
}
}
mysql_close($conexao);
Este script est dividido em trs partes: incluso, excluso e visualizao de registros.
Os trs formulrios ativam o mesmo programa, assim o campo hidden dos mesmos
indica ao programa qual a operao que deve ser realizada. Em cada formulrio existe
um campo escondido chamado operacao, que possui os valores incluir, excluir ou
mostrar, conforme o formulrio ativado.