PI S2 DSW III DouglasARS
Apresentação
Olá Aluno,
...
Dediquem um tempo para seus estudos.
Falta pouco!
Fiquem atentos as postagens no Fórum e participem dos nossos encontros virtuais.
Prof. Douglas A.
Objetivos
- Como alterar para o conjunto de funções MySQLi para conectar o PHP ao banco de dados MySQL.
- Aprender a trabalhar com caixa de diálogos.
- Como criar um Domínio gratuito na Internet.
Conexão PHP-MySQL
Nessa nossa volta ao desenvolvimento do sistema, me deparei com uma recomendação do PHP sobre a substituição do conjunto de funções MySQL por MySQLi, que é uma extensão do PHP feita para aproveitar os recursos mais avançados do banco de dados MySQL. O interessante desse novo conjunto de funções MySQLi é que pode ser usado de forma orientada a objetos.
Para que você possa utilizar as funções MySQLi você precisa do PHP 5 (ou superior) e MySQL 4.1.3 (ou superior). Não se esqueça de antes de testar esses scripts verificar se o MySQLi está habilitado no seu PHP dando uma olhada no phpinfo(). A Figura 1 apresenta como é essa tela de informações PHP.
Para testar a versão, basta criar uma página PHP que chame info.php, salvar no diretório padrão do Apache: /var/www/html (para Ubuntu 14). Você pode criar a página (arquivo) com editor de sua preferência, veja o exemplo com o gedit:
$ gedit /var/www/html/info.php &
Digite o seguinte código:
<?php
phpinfo();
?>
Salve o arquivo, vá no seu navegador e digite:
http://localhost/info.php
Deverá aparecer uma tela como esta:
Figura 1 - Tela resultado da função phpinfo().
Agora vamos aos exemplos de scripts que fazem todas as operações comuns do MySQL, vou preferir aqui mostrar conexões estruturadas, sem usar o recurso de orientação à objetos, vamos fazer isso mostrando parte do código baseado no nosso sistema exemplo.
Conectando ao MySQL
<?php
$servidor = 'localhost';
$usuario = 'root';
$senha = '';
$banco = 'mydb';
// Conecta-se ao banco de dados MySQL
$link = mysqli_connect($servidor,$usuario,$senha,$banco) or die("ERRO: Não foi possível conectar-se ao banco de dados.");
Essa função faz de uma só vez a conexão com o MySQL e já seleciona o banco de dados.
Executando uma consulta SQL
Neste exemplo, vamos mostrar como conectar a um outro banco de dados e fazer o teste recuperando os dados através de um SELECT. Lembrando, se você quiser fazer o teste no seu servidor, é preciso reconfigurar as ligações (servidor, usuario, senha e banco).
<html>
<head>
<title>Página de testes</title>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
</head>
<body>
<b>Página de teste!</b><br><br>
<?php
echo "Teste"."<br>";
$servidor = 'mysql.hostinger.com.br'; // Servidor MySQL
$usuario = 'u381978428_dars'; // Usuário MySQL
$senha = 'Jujuba01'; // Senha MySQL
$banco = 'u381978428_exemp'; // Banco de dados MySQL
echo $banco."... ";
$conecta = mysqli_connect($servidor,$usuario,$senha,$banco) or die("ERRO: ".mysqli_error($conecta));
echo "conectou. <br><br>";
$consulta = "SELECT * FROM usuarios" or die("ERRO: ".mysqli_error($consulta));
echo $consulta."<br>";
if ($resultado = mysqli_query($conecta,$consulta)){
printf("Select returned %d rows.\n", mysqli_num_rows($resultado));
};
echo "<p>Usuário | Senha <br>";
while($linha = mysqli_fetch_assoc($resultado)){
echo $linha["usuario"].' | ';
echo $linha["senha"].'<br>';
};
mysqli_close($conecta); // Desconecta o banco de dados
?>
</body>
</html>
- Resultado
- http://douglasars.esy.es/teste.php
Página de teste!
Teste
u381978428_exemp... conectou.
SELECT * FROM usuarios
Select returned 2 rows.
Usuário | Senha
adm | 81dc9bdb52d04dc20036dbd8313ed055
douglas | 81dc9bdb52d04dc20036dbd8313ed055
De fato, às modificações do uso da antigas funções (mysql) com as novas (mysqli), não é tão grande. Além desse i ao final da função, em alguns casos existe a unificação das funções, como na mysqli_connect(), que faz a conexão e já seleciona a base de dados. Outra modificação está na função mysqli_query($conecta,$consulta), na verdade essa é apenas uma ligação para a mesma função e passa ser associada a conexão representado pela variável "$conecta". A variável "$consulta" tem o código SQL com o SELECT da tabela. Veja como era e como ficaram as principais funções:
- Nova função para conexão
- mysqli_connect($servidor,$usuario,$senha,$banco) | substitui: mysql_connect($servidor,$usuario,$senha) e mysql_select_db($banco, $conecta)
- Nova função para consulta
- mysqli_query($conecta,$consulta) | substitui: mysql_query($consulta)
- Nova função para retornar o número de registros (linhas)
- mysqli_num_rows($resultado) | substitui: mysql_num_rows($resultado)
- Nova função para retornar os dados para um vetor (colunas)
- mysqli_fetch_assoc($resultado) | substitui: mysql_fetch_assoc($resultado)
- Nova função para fechar o banco de dados
- mysqli_close($conecta) | substitui: mysql_close($conecta)
Caixa de Diálogo
Muitas vezes é necessário confirmar uma ação importante no sistema como por exemplo uma confirmação de exclusão de registro. Existem muitas maneiras de realizar essa tarefa, porém, escolhemos uma que utiliza o JavaScrit e está presente no nosso sistema exemplo. O código abaixo faz parte da página "listaclientes.php", nela encontra-se o botão "Excluir" que quando acionado chama a função apaga_registro(), que confirma a exclusão ou não do registro selecionado.
[...]
<script type="text/javascript">
function apaga_registro(id) {
if (confirm("Deseja realmente EXCLUIR o registro?")){
window.location = 'listaclientes.php?tipo=9&id='+id;
}
}
</script>
<?php
if ($_GET["tipo"]==9) {
apagar('clientes', 'id_cliente', $_GET['id'],$_SG['link']);
header("Location: listaclientes.php?tipo=2&filtro=0");
}
[...]
echo '<input name="excluir" type="button" onClick="apaga_registro('.$exibe['id_cliente'].')" value="Excluir"></td>';
[...]
Como já falei, esse trecho de código está no arquivo listaclientes.php, quando clicado o botão Excluir, é chamada a função apaga_registro() e passa como parâmetro o id do cliente, ou seja, sua identificação única que será utilizada com critério de exclusão do registros, isto se for confirmada pela função confirm() do JavaScritp. A Figura 2 mostra como fica uma tela de confirmação.
Figura 2 - Tela confirma do cadastro de cidades.
Se a opção escolhida for Cancelar a função confirm() retorna FALSO e o sistema volta para o seu curso normal a partir de onde foi chamada. Se opção for OK a função confirm() retorna VERDADEIRO e trata de apagar o registro.
Nota: A função confirm() não apaga nenhum registro. Quem apaga o registro é a chamada novamente da página (window.location = 'listaclientes.php?tipo=9&id='+id), uma técnica de recursividade da própria página, que envia um "tipo=9" e um "id" do cliente selecionado para ser apagado.
Quando a página é re-chamada com "tipo=9" o sistema desvia sua execução e o registo do cliente identificado por "id" é excluído pela função apagar() que está na página funcoes.php. Novamente a página é chamada normalmente, e se deu tudo certo com a exclusão do registro, esse cliente ou cidade não fará mais parte da consulta.
Nota 2: Não poderá haver dependência do tipo chave estrangeira para o registro cadastrado (FOREIGN KEY), ou seja, se você está tentando excluir uma cidade que foi utilizada por um cliente, este registro não poderá ser excluído.
Domínio na Internet
Resumo
Sistema exemplo
- Endereço
- http://douglasars.esy.es/
- Usuário
- adm
- Senha
- 1234
Código Fonte
Organização da Semana 3
Nesta segunda semana [...]
Até lá!
Bons estudos!
Prof. Douglas A.
Referências
[1] Guia prático de MySQLi no PHP: http://blog.thiagobelem.net/guia-pratico-de-mysqli-no-php
[2] Como hospedar seu site gratuitamente (com MySQL e PHP): https://www.youtube.com/watch?v=nGXOL_0fyDM
[3] Como usar o Filezilla (FTP): https://www.youtube.com/watch?v=qxhjYhgHF-M
[4] Tutorial de FTP - Como Usar o FileZilla: <http://www.comofazerumsite.com/criarsite/tutorial-ftp-filezilla.html>
| << | <> | >> |
|---|
Organização da Semana 2
Nesta primeira semana apresentamos nosso plano de ensino e recomeçamos o desenvolvimento do sistema, explicando sobre como utilizar sessões, para controlar o acesso às páginas, também aprendemos sobre edição dos dados já inseridos. Na próxima semana, vamos dar uma passado sobre o uso de novas funções de conexão do PHP com o banco de dados MySQL. Veremos também como colocar sua aplicação em um domínio gratuito na internet.
Não percam!
Bons estudos!
Prof. Douglas A.
Referências
[1]
| << | <> | >> |
|---|

