Neste projeto PHP , vamos criar um aplicativo de pesquisa de opinião.
A pesquisa de opinião consistirá em 3 componentes principais;
Controlador frontal - esta é a página de índice que determinará o código HTML a ser carregado. Isso garantirá que nosso aplicativo tenha um único ponto de entrada. Isso nos dará mais controle sobre o aplicativo.
Lógica de negócios - conterá o código PHP para interagir com o banco de dados. Isso nos permitirá separar a lógica de negócios da apresentação, tornando nosso aplicativo fácil de manter
Visualizações - conterá o código HTML. Teremos duas páginas a saber;
- Opinion.html.php - contém o código HTML com a pergunta e opções
- results.html.php - conterá o código HTML que exibe os resultados da pesquisa de opinião
Suposições feitas
A pesquisa de opinião fará a pergunta -
Qual é a sua biblioteca JavaScript favorita?
As respostas seriam
- JQuery
- MooTools
- Biblioteca YUI
- Brilho
Aqui estão as etapas para criar o aplicativo -
Etapa 1) Conectividade de banco de dados
Esta seção pressupõe conhecimento de MySQL e como administrá-lo. Se você não estiver familiarizado com o MySQL, verifique nossa seção de tutoriais de SQL.
Nosso aplicativo terá uma tabela apenas com 3 campos a saber;
- id - número gerado automaticamente como a chave primária
- escolha - o número que representa um candidato presidencial
- ts - o carimbo de data / hora para a votação
O script abaixo cria nossa tabela js_libraries.
Etapa 2) Codificando nosso aplicativo
Vamos agora criar nossa camada de lógica de negócios que tratará da conectividade do banco de dados. 'Opinion_poll_model.php'
db_handle = mysqli_connect($this->host, $this->uid, $this->pwd); //connect to MySQL serverif (!$this->db_handle) die("Unable to connect to MySQL: " . mysqli_error());if (!mysqli_select_db($this->db_handle,$this->db)) die("Unable to select database: " . mysqli_error());}private function execute_query($sql_stmt) {$result = mysqli_query($db_handle,$sql_stmt); //execute SQL statementreturn !$result ? FALSE : TRUE;}public function select($sql_stmt) {$result = mysqli_query($db_handle,$sql_stmt);if (!$result) die("Database access failed: " . mysqli_error());$rows = mysqli_num_rows($result);$data = array();if ($rows) {while ($row = mysqli_fetch_array($result)) {$data = $row;}}return $data;}public function insert($sql_stmt) {return $this->execute_query($sql_stmt);}public function __destruct(){mysqli_close($this->db_handle);}}?>
AQUI,
- “Public function __construct ()” é o método construtor de classe que é usado para estabelecer a conexão com o banco de dados
- “Public function execute_query (…)” é o método para executar consultas como inserir, atualizar e excluir
- “Seleção de função pública” é o método para recuperar dados do banco de dados e retornar uma matriz numérica.
- “Inserção de função pública (…)” é o método de inserção que chama o método execute_query.
- “Public function __destruct ()” é o destruidor da classe que fecha a conexão do banco de dados.
Vamos agora criar o front controller index.php
alert('You did not vote!');";}if (count($_POST) > 1) {$ts = date("Y-m-d H:i:s");$option = $_POST['vote'][0];$sql_stmt = "INSERT INTO js_libraries (`choice`,`ts`) VALUES ($option,'$ts')";$model->insert($sql_stmt);$sql_stmt = "SELECT COUNT(choice) choices_count FROM js_libraries;";$choices_count = $model->select($sql_stmt);$libraries = array("", "JQuery", "MooTools", "YUI Library", "Glow");$table_rows = '';for ($i = 1; $i < 5; $i++) {$sql_stmt = "SELECT COUNT(choice) choices_count FROM js_libraries WHERE choice = $i;";$result = $model->select($sql_stmt);$table_rows .= "";}require 'results.html.php';exit;}require 'opinion.html.php';?> " . $ libraries [$i] . " Got: " . $result[0] . " votes
AQUI,
- “Require 'Opinion_poll_model.php';” carrega a classe de lógica de negócios
- “$ Model = new Opinion_poll_model ();” cria uma instância da classe de lógica de negócios
- “If (count ($ _ POST) == 1)…” executa a validação de dados e usa JavaScript para exibir uma caixa de mensagem se nenhum candidato tiver sido votado.
- “If (count ($ _ POST)> 1)…” verifica se um voto foi selecionado contando o número de itens no array $ _POST. Se nenhum item foi selecionado, o $ _POST conterá apenas o item enviado. Se um candidato foi escolhido, o array $ _POST terá dois elementos, o item enviar e votar. Este código também é usado para inserir um novo registro de voto e, em seguida, exibir a página de resultados
- "saída;" é usado para encerrar a execução do script após a exibição dos resultados, para que o formulário de pesquisa de opinião não seja exibido.
- “Require 'Opinion.html.php';” exibe o formulário de pesquisa de opinião se nada tiver sido selecionado.
Vamos agora criar as visualizações. Opinion.html.php
JavaScript Libraries - Opinion Poll JavaScript Libraries - Opinion Poll
What is your favorite JavaScript?
results.html.php
JavaScript Libraries Poll Results Opinion Poll Results
What is your favorite JavaScript Library?
people have thus far taken part in this poll:
Etapa 3) Testar nosso aplicativo
Supondo que você salvou os arquivos na pasta opinionpoll, navegue até o URL http: // localhost / opinionpoll /
Se você clicar no botão Ok sem selecionar uma biblioteca JS, receberá a seguinte caixa de mensagem.
Selecione uma biblioteca JS e clique no botão OK. Você obterá a página de resultados semelhante à mostrada abaixo.
Resumo
- Dividir seu aplicativo em lógica de negócios, camadas de visão do controlador frontal é uma boa prática de design de aplicativo
- JavaScript é útil para realizar validação do lado do cliente
- É uma boa prática de programação usar file.html.php para arquivos que contêm códigos HTML e PHP
- O aplicativo de pesquisa de opinião demonstra como o conhecimento aprendido nas lições anteriores pode ser reunido para desenvolver um aplicativo funcional com um back-end de banco de dados.