sábado, 19 de agosto de 2023

Verificando validade de produtos com 'case when'

 Hoje vamos conhecer uma utilidade muito interessante para a expressão “case when” em bancos de dados. Neste “post” vamos verificar a validade de produtos com o MySQL. Siga os passos:

 1.       Criar tabela de produtos:

 CREATE TABLE `produtos` (
    `id` INT(10) NOT NULL AUTO_INCREMENT,
    `produto` VARCHAR(50) NOT NULL,
    `validade` DATE NOT NULL,
    PRIMARY KEY (`id`)
);

2.       Cadastre alguns produtos; deixe alguns com a data de validade anterior ao dia atual:


Agora utilize a seguinte SQL para relacionar os produtos vencidos:

 SELECT produto,
case
when
validade > CURDATE() then 'produto válido'
when validade = CURDATE() THEN 'vencendo hoje'
when validade < CURDATE() then 'atenção - VENCIDO'
END
situacao,
validade
FROM produtos;

 Ou seja, SE a data de validade for maior que (>) a data atual (função CURDATE()), o banco de dados imprimirá a frase 'produto válido'; se igual, 'vencendo hoje'; e, claro, se a data de validade for inferior (<) à data de hoje será impressa a expressão 'atenção - VENCIDO'; a esta coluna dei o nome de “situacao". Veja o resultado:

É isso aí. Por hoje é só, pessoal.

 

quarta-feira, 2 de agosto de 2023

Saiba quem participou de eventos com MySQL e a função ‘group_concat’

 Uma função muito útil do MySQL é a “group_concat”, que concatena várias linhas em um só campo. Neste “post” vamos colocá-la em prática para verificar quais foram os participantes de determinados eventos.

O primeiro passo é ter uma tabela com os participantes. Use o código abaixo para criar a sua (neste “post”, a tabela se chamará “alunos”):

 CREATE TABLE `alunos` (
`id` INT(10) NOT NULL AUTO_INCREMENT,
`nome` VARCHAR(50) NOT NULL,
PRIMARY
KEY (`id`)
);

 Agora insira alguns nomes; a minha tabela ficou assim (recomendo que sejam vários e observe a ordem):

 


 Agora vamos criar a tabela de cursos:

 CREATE TABLE `cursos` (
`id` INT(10) NOT NULL AUTO_INCREMENT,
`curso` VARCHAR(50) NOT NULL,
PRIMARY KEY (`id`)
);

 Neste “post”, vamos inserir apenas quatro cursos:


 Para relacionar as duas tabelas, vamos agora criar uma terceira, que chamaremos de cursos_alunos; repare que, além da coluna de chave primária (id), também serão criadas duas colunas, sendo uma para os “ids” dos cursos e outra para os “ids” dos alunos:

 CREATE TABLE `cursos_alunos` (
`id` INT(10) NOT NULL AUTO_INCREMENT,
`idcurso` INT(10) NOT NULL,
`idAluno` INT(10) NULL DEFAULT NULL,
PRIMARY KEY (`id`)
);

 


Agora já podemos criar a consulta que nos exibirá os cursos e os respectivos alunos que os frequentaram:

 select cursos.curso, group_concat(" ", alunos.nome) alunos
from cursos
INNER JOIN
cursos_alunos
on
cursos_alunos.idcurso = cursos.id
INNER Join
alunos
on
cursos_alunos.idAluno = alunos.id
group by cursos.curso;

Observe que os alunos “Tite” e “Vanderlei” frequentaram dois cursos: o de PHP e o de Java; o que está sendo exibido corretamente.

Por hoje é só, pessoal.

 

quarta-feira, 5 de julho de 2023

Agenda PHP e MySQLi II – busca por mês

 Olá. Conforme o “post” anterior, veremos agora como incluir na agenda uma busca por mês. É bem simples; basta trocar o código anterior pelo seguinte:

 <!DOCTYPE html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Agenda</title>
</head>

<body>

<p>Bom dia! Hoje &eacute;:
<?php
date_default_timezone_set('America/Sao_Paulo');
echo date('d/m/Y')."</p>";

// conexão banco de dados

$query = "select * from agenda where date(dia) = curdate() order by horario";
$sql=mysqli_query($mysqli, $query);

$resultados = mysqli_num_rows($sql);
if($resultados >= 1){
echo "Seus compromissos para hoje são:"."<p>";

while($reg = mysqli_fetch_array($sql))
   {
    echo $reg['compromisso']." - ";
    echo date('d/m/Y', strtotime($reg['dia']))." - ";
    echo date('H:i', strtotime($reg['horario']))."<br>";
   }
}
else
{
echo "vc não tem compromissos hoje";
}
?>

<h4>Consulte os compromissos por m&ecirc;s:</h4>
<form id="form1" name="form1" method="post" action="">
  <label>
  <select name="meses" id="meses">
    <option value="00">selecione</option>
    <option value="01">janeiro</option>
    <option value="02">fevereiro</option>
    <option value="03">março</option>
    <option value="04">abril</option>
    <option value="05">maio</option>
    <option value="06">junho</option>
    <option value="07">julho</option>
    <option value="08">agosto</option>
    <option value="09">setembro</option>
    <option value="10">outubro</option>
    <option value="11">novembro</option>
    <option value="12">dezembro</option>
  </select>
  </label>
  <label>
  <input name="buscaMes" type="submit" id="buscaMes" value="Consultar">
  </label>
</form>

<?php

if(isset($_POST['buscaMes'])){

$meses = $_POST['meses'];

if($meses == 00){
echo "<br>selecione um mes";
}
else
{

$sql = "SELECT * FROM agenda WHERE month(dia) = $meses order by dia";
$query = mysqli_query($mysqli, $sql);
$qtd = mysqli_num_rows($query);

    if($qtd > 0){
   
echo "<br>compromissos localizados:<br><br>";
   
    while($linha = mysqli_fetch_assoc($query)){
         
         echo $linha['compromisso']." - ";
         echo date('d/m/Y', strtotime($linha['dia']))." - ";
         $horarioLocalizado = $linha['horario'];
               if($horarioLocalizado == '00:00:00'){
                echo "horario indefinido<br>";}
               else
          {
          echo date('H:i', strtotime($horarioLocalizado))."<br>";
          }
          
     }
         }else{
    echo "<br>Não foram encontrados compromissos.";
    } } }?>

</body>
</html>

Veja que já está incluído um menu “select option” com todos os meses. Agora lembre-se de corrigir a conexão. Salve e teste no navegador; a busca já deverá estar funcionando corretamente:

 



 

Por hoje é só, pessoal.

quinta-feira, 22 de junho de 2023

Agenda simples em PHP e MySQLi

 Hoje veremos como criar uma agenda de compromissos em PHP, com o banco de dados MySQL. O primeiro passo é criar uma tabela no MySQL. Para facilitar, vc pode usar esse “script”:

quarta-feira, 20 de maio de 2020

Página de detalhes utilizando “links” com PHP e MySQLi


Já vimos como abrir uma página de detalhes utilizando “links” no post:
Busca Simples Com PHP, PDO e Mysql Utilizando “links”;
agora veremos como fazer o mesmo utilizando a extensão Mysqli. Para isso, vamos utilizar a mesma página do post

O primeiro passo é inserir no banco de dados uma coluna onde ficarão as íntegras das matérias; vou usar a mesma tabela de artigos e a coluna se chamará “texto”. Se vc ainda não tem essa coluna, use o seguinte código:

segunda-feira, 18 de maio de 2020

Pesquisa por categorias pelo nome com PHP e MySQL

Hoje veremos como criar uma busca por categorias pelo nome utilizando PHP, o banco de dados MySQL, a extensão Mysqli e um menu do tipo "select"(ou "drop-down").
O primeiro passo é criar uma tabela no banco de dados; vou criar uma de artigos:

CREATE TABLE `artigos` (
    `id` INT(10) NOT NULL AUTO_INCREMENT,
    `categoria` VARCHAR(50) NULL DEFAULT NULL,
    `titulo` VARCHAR(50) NULL DEFAULT NULL,
    PRIMARY KEY (`id`)
    );

Insira alguns registros para teste:

terça-feira, 26 de fevereiro de 2019

Relatórios de vendas com PHP, PDO e Mysql


Relatórios de vendas com PHP, PDO e o banco de dados Mysql não são difíceis de fazer. Neste tutorial, vamos criar um relatório que apresentará as maiores vendas do último mês separadas por cliente, e também as maiores vendas por cliente.
O relacionamento de tabelas é utilizado para exibir os nomes dos clientes. O primeiro passo é criar as tabelas de vendas e de clientes; vamos começar bem simples, e lembre-se de que o “id” do cliente deverá constar da tabela de vendas (coluna “cod_cliente”):

sexta-feira, 14 de dezembro de 2018

Cadastro com drop down dinâmico com PHP e MySQL


Hoje veremos como criar um cadastro com drop down (ou menu “select option”) dinâmico; isto é, quando parte das informações estão numa tabela do banco de dados e farão parte de outra tabela. Neste caso de exemplo, é um cadastro de convidados indicados por um amigo (estes estão na nossa já conhecida tabela de amigos). O primeiro passo é ter a tabela de amigos; se não a tiver, veja aqui:

A seguir vamos criar a tabela de convidados; é quase igual, só não esqueça de adicionar a coluna com o “id” do amigo:

terça-feira, 27 de novembro de 2018

‘Combo’ dinâmico cidades-estados SEM Ajax


Hoje veremos como criar aqueles famosos combos dinâmicos (ou menus “select options”) tipo cidades-estados (o 2º ‘combo’ altera-se conforme a opção selecionada no 1º) usando PHP, o banco de dados Mysql e apenas um comando javascript.
Siga os passos:
Primeiro crie em seu banco de dados uma tabela de estados:

segunda-feira, 26 de novembro de 2018

Mensagem que “desaparece” automaticamente com PHP e Javascript


Hoje veremos como fazer uma mensagem “desaparecer” automaticamente com Javascript e PHP; isso é muito útil quando queremos evitar que o(s) usuário(s) precise(m) recarregar uma página após algum evento, como uma resposta a uma consulta ao banco de dados. E isso na verdade é bem simples; bastam apenas dois comandos javascript.

O primeiro comando é uma função que recarrega a página (“window location”); vamos posicioná-la na seção “head” de uma página HTML: