Ir ao conteúdo
  • Cadastre-se

PHP Formatar a visualização (PHP, MySQL e HTML)


Ir à solução Resolvido por washalbano,

Posts recomendados

Postado

Eu estou desenvolvendo uma aplicação, e eu preciso formatar a visualização na tela para o usuário. pois os campos data, valor e status, estão sendo representados da maneira que o MySQL armazena os valores, e o ano está aparecendo no padrão AAAA/MM/DD, o valor eu quero que apareça em R$ e o campo status que ta sendo representado por 1 quero que apareça APROVADO e o número 2 REPROVADO. Já fiz a parte dos SELECTS dentro do HTML utilizando PHP com acesso ao PDO. Me ajudem por favor rsrs.

 

format.png.c78b06e01ae776557abc5986fac1bf7e.png

 

  • Solução
Postado

Olá!
O sr. pode formatar os dados no momento da consulta sql
exs.:

date_format(created_at, "%d/%m/%Y") as date

if(status = 0, 'reprovado', 'aprovado') as status


Ou pelo php:
 

<?php
$data = explode('-', $data);
$data = implode('/', array_reverse($data));

$status = $status==0 ? 'reprovado' : 'aprovado';

 

  • Curtir 2
Postado

@washalbano Usei a maneira pelo PHP e deu certo aqui na data e status. Só que faltou você explicar a parte do valor haha. O SQL eu havia criado o campo valor do tipo FLOAT, pra receber valores quebrados além de inteiros, portanto eu quero que apareça para o usuário esse valor exato junto com o R$ no começo, e eu não to conseguindo fazer isso.

  • Moderador
Postado

@aleffelipe96 Só completando as respostas anteriores.

 

 Você pode criar funções para que sejam mais fáceis o uso das datas.

Por exemplo:

 

function converteData($data){
    if(count(explode("/",$data)) > 1): 
         return implode("-",array_reverse(explode("/",$data)));
    elseif(count(explode("-",$data)) > 1): 
         return implode("/",array_reverse(explode("-",$data)));
    endif;
}

Com essa função você resolve a questão da data ser no formato do mysql  e também como é apresentada ao usuário. 

Exemplo:

 

Vamos supor que no formulário de envio você tem um campo de datas no formato:  30/09/2020

Ao usar:

$data = $_POST["data"];

converteData($data);

A função vai enviar ao mysql  no formato 2020-09-30

 

Mas quando você for apresentar o usuário buscando do mysql:

$resultado = mysqli_query($conexao, "SELECT data from usuario");

while($dados = mysqli_fetch_object($resultado)):
    $dataConvertida = converteData($dados->data);

    echo "$dataConvertida";

endwhile;

Vai retornar direto 30/09/2020. 

Então você mata dois coelhos com uma cajadada e apenas uma única função!

  • Curtir 1
  • Moderador
Postado
1 hora atrás, washalbano disse:

Sugiro usar decimal(10,2) no sql

Na verdade, o ideal para valores monetários é definir como Double(9,2) no banco de dados.  Mas como eu disse, seria o ideal. Mas este ideal é definido pelo próprio desenvolvedor.

Eu recomendei assim, porque foi como aprendi na faculdade!

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...