FACULDADE DE TECNOLOGIA SENAC PELOTAS Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas Linguagem de Programação Visual – Edécio Fernando Iepsen Simulado - Programação PHP com manipulação de Banco de Dados Nome: ____________________________________________________________ Data: 16/05/2014 Marque a alternativa correta: 1. Analisa as seguintes afirmações, sobre envio de informações em programas PHP I. No método GET, as informações enviadas por um formulário aparecem na barra de endereço do navegador. II. Uma imagem enviada por um formulário Web deve ser recuperada pelo comando $_IMAGES[" "] III. Na chamada altera.php?id=4 para recuperar o valor da variável id deve-se utilizar $_POST["id"] A( B( C( D( E( ) Apenas I está correta ) Todas estão corretas ) Apenas I e II estão corretas ) Apenas I e III estão corretas ) Apenas III está correta 2. Para alterar um veiculo (observe os atributos e métodos na pág. 3), qual método NÃO é necessário: A ( ) $veiculo->setId() B ( ) $veiculo->update() C ( ) $veiculo->setModelo() D ( ) $veiculo->select() E ( ) $veiculo->setPreco() 3. Para obter os veículos cuja palavra-chave informada ($palavra) conste em modelo deve-se utilizar método/parâmetro: A ( ) $veiculo->select("where modelo like '%$palavra%'"); B ( ) $veiculo->select("where veiculos like '%$palavra%'"); C ( ) $veiculo->select("where id = '%$palavra%'"); D ( ) $veiculo->select("where modelo equals '$palavra'"); E ( ) $veiculo->select("where veículos = '$palavra'"); 4. No acesso a base de dados em PHP utilizando PDO (PHP Data Objects), qual método deve ser utilizado para recuperar os registros de uma tabela a partir do comando select. A ( ) $dados = $conecta->exec("select ..."); B ( ) $dados = $conecta->run("select ..."); C ( ) $dados = $conecta->print("select ..."); D ( ) $dados = $conecta->display("select ..."); E ( ) $dados = $conecta->query("select ..."); 5. Analisa as seguintes afirmações I. Para concatenar Strings em PHP utiliza-se o ponto (como em $cidade = "Pelotas" . " RS";) II. O comando $_SESSION[" "] é utilizado para criar uma variável de sessão e também para acessar o valor desta variável. III. Para somar valores de campos numéricos em SQL utiliza-se a cláusula SUM no comando Select. A( B( C( D( E( ) Apenas I está correta ) Todas estão corretas ) Apenas I e II estão corretas ) Apenas I e III estão corretas ) Apenas III está correta As questões seguintes utilizam como referência às classes e métodos listados na página 3, para manipulação da tabela veículos. Responde: 6. A partir da chamada (link) delete.php?id=5 quais os comandos PHP necessários para instanciar um objeto da classe Veiculos, setar o id e excluir este registro? 7. Para que serve o método $conecta->lastInsertId()? Programação: 8. Informe nos traços, os comandos a serem utilizados no programa index.php para exibir os veículos em destaque, de acordo com o comentário indicado na linha anterior ***************************************************** index.php <?php require_once 'sm.php'; require_once 'model/Veiculos.php'; $veiculo = new Veiculos(); // atribui a variável $lista o método select do objeto $veiculo, para obter os veículos destacados a) __________________________________________________________________ // associa a variável lista do objeto smarty ($sm), a lista obtida acima b) __________________________________________________________________ $sm->display("index.tpl"); ?> 9. Preenche os espaços para percorrer a lista obtida pelo programa acima e exibir modelo, preço e foto dos veículos ***************************************************** index.tpl <html> <head><title> Revenda Herbie - Destaques </title></head> <body> <h1> Veículos em Destaque </h1> <table border=1> (a) {foreach from=___________________ item=_____________} <tr><td> {$row.modelo} </td> (b) (c) <td> Preço: ________________ </td> <td> <img src=fotos/_____________________ </td> </tr> {/foreach} </table> </body> </html> 10. Sabendo da existência de um formulário, com os campos modelo e preco passados pelo método POST, informe os comandos a serem utilizados no programa abaixo, para verificar se o programa foi chamado a partir deste formulário e, então, realizar a inclusão de um veículo. Setar o campo destaque com "x". Utilizar os métodos listados na página 3. <?php require_once 'sm.php'; $mensagem = ""; $sm->assign("mensagem", $mensagem); $sm->display("cad_veiculos.tpl"); ?> 11. Criar os programas contaVeiculos.php e contaVeiculos.tpl para exibir o número de veículos cadastrados na tabela veiculos, como na página ao lado. Estrutura da Tabela: veículos class VeiculosDAL extends VeiculosTO { protected $sqlInsert = "insert into veiculos(modelo, preco, destaque) values ('%s', %s, '%s')"; protected $sqlUpdate = "update veiculos set modelo = '%s', preco = %s, destaque = '%s' where id = %s"; protected $sqlDelete = "delete from veiculos where id = %s"; ***************************** VeiculosTO.php <?php protected $sqlSelect = "select * from veiculos %s"; public function insert() { $sql = sprintf($this->sqlInsert, $this->getModelo(), $this->getPreco(), $this->getDestaque()); return $this->runExecId($sql); } require_once 'dbConnection.php'; class VeiculosTO extends dbConnection { private private private private $id; $modelo; $preco; $destaque; public function update() { $sql = sprintf($this->sqlUpdate, $this->getModelo(), $this->getPreco(), $this->getDestaque(), $this->getId()); return $this->runExec($sql); } // métodos gets public function getId() { return $this->id; } public function getModelo() { return $this->modelo; } public function delete() { $sql = sprintf($this->sqlDelete, $this->getId()); return $this->runExec($sql); } public function getPreco() { return $this->preco; } public function getDestaque() { return $this->destaque; } public function select($options="") { $sql = sprintf($this->sqlSelect, $options); return $this->runQuery($sql); } // métodos sets public function setId($id) { $this->id = $id; } public function load() { $reg = $this->select("where id = " . $this->getId()); $this->setModelo($reg[0]["modelo"]); $this->setPreco($reg[0]["preco"]); $this->setDestaque($reg[0]["destaque"]); return $this; } public function setModelo($modelo) { $this->modelo = $modelo; } public function setPreco($preco) { $this->preco = $preco; } public function setDestaque($destaque) { $this->destaque = $destaque; } } } ?> ************************************* Veiculos.php <?php require_once 'VeiculosDAL.php'; class Veiculos extends VeiculosDAL { ?> public function contar() { $sql = "select count(id) as num from veiculos"; $dados = $this->runQuery($sql); return $dados[0]["num"]; } **************************** VeiculosDAL.php <?php require_once 'VeiculosTO.php'; } ?>