Bento Evaldo Junior - Desenvolvimento web com PHP e MySQL стр 18.

Шрифт
Фон

frente.

67

7.3. Buscando dados no banco

Casa do Código

Sempre ouvi falar de mysql_connect()

Talvez você já tenha visto algum texto sobre PHP e MySQL em que a

função de conexão era a mysql_connect(). Esta função existe, assim

como várias outras funções que começam com mysql_, mas elas serão

removidas do PHP em breve. Por isso, o ideal é usar sempre a nova e me-

lhorada versão da biblioteca MySQL do PHP, a MySQLi. No geral, basta

adicionar a letra i nos nomes de função MySQL e um parâmetro aqui

ou ali, que tudo funciona bem, mas existem algumas diferenças entre

as bibliotecas. Então, a dica é: sempre use a versão nova da biblioteca

MySQL para PHP. Sempre.

Vamos fazer uma pequena experiência com a conexão ao banco. Acesse o ar-

quivo banco.php diretamente pelo navegador, no endereço: http://localhost/tarefas/

banco.php. Você deverá ver apenas uma página em branco, o que é bom, significa

que a conexão funcionou. Agora, experimente mudar o campo de senha da conexão

para uma senha incorreta e acesse o arquivo novamente. Você verá a frase Problemas

para conectar no banco. Verifique os dados! . Ou seja, nosso código de conexão está

funcional e também exibe erros caso não consiga conectar.

O erro de conexão aparece sempre, mesmo com os dados

corretos

Você poderá passar pelo problema do erro de conexão de vez em

quando. Caso isso aconteça, verifique se o servidor do MySQL está ativo

no painel de controle do XAMPP, ou em outra ferramenta que você use

para gerenciar o MySQL. Uma outra forma de verificar se o banco está

funcionando normalmente é acessando o PHPMyAdmin. Se ele também

não conseguir conectar, o banco poderá estar mesmo desligado.

7.3

Buscando dados no banco

A próxima alteração que faremos em nosso programa é fazer com que ele busque as

tarefas cadastradas no banco de dados e não mais na sessão. Para isso, abra o arquivo

tarefas.php e ache o trecho que verifica se a sessão existe para colocar na lista de

tarefas, ou cria uma lista vazia, caso a sessão não exista. O trecho é este:

68

Casa do Código

Capítulo 7. Integrando PHP com MySQL

<?php

...

if (isset($_SESSION['lista_tarefas'])) {

$lista_tarefas = $_SESSION['lista_tarefas'];

} else {

$lista_tarefas = array();

}

...

Este trecho será eliminado! No lugar dele, ficará apenas uma nova linha que

chama uma função que retornará as tarefas cadastradas no banco:

<?php

...

$lista_tarefas = buscar_tarefas($conexao);

É claro que a função buscar_tarefas() ainda não existe, por isso iremos

criá-la dentro do arquivo banco.php. Então, abriremos novamente o arquivo

banco.php e no final dele vamos colocar a nova função. Mas antes de escrevê-la,

precisamos planejar um pouco o seu funcionamento.

A função buscar_tarefas() deverá usar uma conexão com o banco para

executar comandos SQL que busquem a lista de tarefas. Após buscar as tarefas, ela

deverá criar um array com os dados das tarefas e então deverá retornar esses dados.

Certo, planejando assim fica mais simples alcançar nosso objetivo. Como já te-

mos uma variável com a conexão com o MySQL, poderemos usá-la. Vamos ao código

da função:

<?php

...

function buscar_tarefas($conexao)

{

$sqlBusca = 'SELECT * FROM tarefas';

$resultado = mysqli_query($conexao, $sqlBusca);

$tarefas = array();

69

7.3. Buscando dados

no banco

Casa do Código

while ($tarefa = mysqli_fetch_assoc($resultado)) {

$tarefas[] = $tarefa;

}

return $tarefas;

}

Nesta função foi criada uma variável com o comando SQL que irá buscar os

dados no banco, no caso o comando SELECT * FROM tarefas. Logo depois, a

função mysqli_query() usa a variável com a conexão e a variável com o comando

para ir ao banco, executar o comando e trazer o resultado. Este resultado fica arma-

zenado na variável $resultado. Na sequência, é criada a variável $tarefas, que

é apenas um array vazio. O próximo bloco é o while, que é executado até que a

função mysqli_fetch_assoc() tenha passado por todas as linhas do resultado,

sendo que cada linha do resultado é armazenada na variável $tarefa, no singular,

para diferenciar do array $tarefas. E então temos, finalmente, o return que

devolve os dados para quem chamou a função.

Agora podemos atualizar a página tarefas.php e ver o resultado. Acesse o

endereço http://localhost/tarefas/tarefas.php e veja o que acontece. Um erro! Ele diz

que a função buscar_tarefas() não existe! Mas nós acabamos de escrevê-la.

Analisando o problema é fácil identificar que o arquivo tarefas.php tem um

include apenas no final para o arquivo template.php. Como ele não sabe da exis-

tência do arquivo banco.php, ele gera o erro. Vamos corrigir o problema adicio-

nando um include para o arquivo banco.php. Este novo include será adicionado

no começo do arquivo, logo após a função session_start():

<?php

session_start();

include "banco.php";

...

Agora sim, atualize a página e você verá que ela exibe os dados cadastrados no

banco! Veja como ficou a minha:

70

Casa do Código

Capítulo 7. Integrando PHP com MySQL

Ваша оценка очень важна

0
Шрифт
Фон

Помогите Вашим друзьям узнать о библиотеке