Ir para conteúdo
Camila de Paula

Listar registros por data - mês

Recommended Posts

Olá! Preciso de uma ajudinha aqui, por favor!

 

Tenho uma página que consulta e lista todos os registros feitos.

Tratei a data para que apareça no formato brasileiro, mas a página está listando respeitando apenas os DIAS da data, e preciso que ela considere além dos dias, o mês e o ano também.

 

Por exemplo, se tenho os seguintes dados: 05/01/2017 , 25/02/2017, 15/03/2017, 05 / 04/2017 não aparece nessa ordem cronológica.

 

Esta aparecendo da seguinte maneira :  25/03/2017,  20/02/2017, 05/01/2017,  05 / 04/2017 - respeitando apenas os 2 primeiros dígitos.

 

Código da consulta:

// pegar a pagina atual
$pagina = isset($_GET['pagina']) ? intval($_GET['pagina']) : 0;

	
// puxar o.s. do banco
$sql_code = "select * ,DATE_FORMAT(data_operacao, '%d/%m/%y') as 'data_operacao' from os order by data_operacao desc LIMIT $pagina, $itens_por_pagina";
	
$execute = $mysqli->query($sql_code) or die($mysqli->error);
$os = $execute->fetch_assoc();
$num = $execute->num_rows;

// pega a quantidade total de objetos no banco de dados
$num_total = $mysqli->query("select * from os")->num_rows;

// definir numero de páginas
$num_paginas = ceil($num_total/$itens_por_pagina);

 

Tabela:

<div class="container-fluid">
  		<div class="row">
  			<div class="col-lg-4">
  				<h1>Escala</h1>
  				<?php if($num > 0){ ?>
				<table class="table table-bordered table-hover table-striped">
					<thead>
						<tr>
                        	<td class="h5"><strong>Data</strong></td>
                            <td class="h5"><strong>O.S</strong></td>
                            <td class="h5"><strong>H. Início </strong></td>
                       
                            
						</tr>
					</thead>
					<tbody>
						<?php do{ ?>
						<tr>
                        	<td><?php echo $os['data_operacao']; ?></td>
							<td><?php echo $os['numero_contrato']; ?></td>
							<td><?php echo $os['h_inicio']; ?></td>
                            
                            
						</tr>
						<?php } while($os = $execute->fetch_assoc()); ?>
					</tbody>
				</table>

				<nav>
				  <ul class="pagination">
				    <li>
				      <a href="escala.php?pagina=0" aria-label="Anterior">
				        <span aria-hidden="true">&laquo;</span>
				      </a>
				    </li>
				    <?php 
				    for($i=0;$i<$num_paginas;$i++){
				    $estilo = "";
				    if($pagina == $i)
				    	$estilo = "class=\"active\"";
				    ?>
				    <li <?php echo $estilo; ?> ><a href="escala.php?pagina=<?php echo $i; ?>"><?php echo $i+1; ?></a></li>
					<?php } ?>
				    <li>
				      <a href="escala.php?pagina=<?php echo $num_paginas-1; ?>" aria-label="Próximo">
				        <span aria-hidden="true">&raquo;</span>
				      </a>
				    </li>
				  </ul>
				</nav>
  				<?php } ?>
  			</div>
  		</div>
  	</div>

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

tente ordenar pelo formato original de data, é o padrão SQL recomendado.

use a função format para exibir.

Compartilhar este post


Link para o post
Compartilhar em outros sites
2 horas atrás, Fernando C disse:

tente ordenar pelo formato original de data, é o padrão SQL recomendado.

use a função format para exibir.

 

Não consegui.

 

Fiz dessa forma:

 

Select:

$sql_code = "select * FROM os order by data_operacao desc LIMIT $pagina, $itens_por_pagina";

 

 

 

Exibição:

<?php echo date_format(strtotime($data_operacao['data_operacao']), 'd/m/Y');?>

 

Esse select funciona para mostrar a data no formato original, com o echo do jeito que estava. Mas quando uso o date_format no echo deste jeito para organizar a data , dá erro:

 

Notice: Undefined variable: data_operacao in ... (na linha do echo)

 

 

Aí eu acrescentei a seguinte linha para definir a variável:

if (isset($_POST["data_operacao"])) $data_operacao = $_POST["data_operacao"];

 E continua o erro.

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

oi.. supondo que a coluna é formato de data,

na verdade o que eu quis dizer é que você deve usar um "alias"
para a data formatada; tente assim:
(no caso estou usando tipo "date", simplesmente,
e minha tabela se chama "artigos" e a coluna se chama "dia"):
formatacao original
(veja que estou usando as mesmas datas q você):

 

euydIzy.jpg

 

exibindo a coluna original e a coluna formatada:

 

i88sKw1.jpg

 

codigo PHP:

<?php
//conexao

$sql_code = "select *, DATE_FORMAT(dia, '%d/%m/%y') as 'data_operacao' from artigos order by dia desc";
    
$execute = $mysqli->query($sql_code) or die($mysqli->error);
while($os = $execute->fetch_assoc())
{
echo $os['id'];
echo " - ";
echo $os['data_operacao'];
echo "<br>";
}
                        
?>

 

Xmmdo8f.jpg      

Compartilhar este post


Link para o post
Compartilhar em outros sites
2 horas atrás, Fernando C disse:

oi.. supondo que a coluna é formato de data,

na verdade o que eu quis dizer é que você deve usar um "alias"
para a data formatada; tente assim:
(no caso estou usando tipo "date", simplesmente,
e minha tabela se chama "artigos" e a coluna se chama "dia"):
formatacao original
(veja que estou usando as mesmas datas q você):

 

euydIzy.jpg

 

exibindo a coluna original e a coluna formatada:

 

i88sKw1.jpg

 

codigo PHP:


<?php
//conexao

$sql_code = "select *, DATE_FORMAT(dia, '%d/%m/%y') as 'data_operacao' from artigos order by dia desc";
    
$execute = $mysqli->query($sql_code) or die($mysqli->error);
while($os = $execute->fetch_assoc())
{
echo $os['id'];
echo " - ";
echo $os['data_operacao'];
echo "<br>";
}
                        
?>

 

Xmmdo8f.jpg      

 

 

Você está dizendo para criar uma coluna na tabela com o nome "dia" no formato date, é isso?

 

Outra coisa,  desculpe a ignorância, mas você nomeou sua tabela como "artigo", no caso a minha tabela é "os", então não entendi porque você colocou uma variável chamada $os... poderia me explicar, por favor?

 

Todo caso, criei na tabela a coluna "dia", e substituí o nome da tabela no select por "os", e ainda não funcionou. Agora não apresenta nenhum erro, mas retorna com os valores em branco.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Primeiro você ordena no sql com o formato americano, depois você transforma para o padrão brasileiro só para exibir.

 

Ex:

Ex: 

$sql_code = "select * from os order by data_operacao desc LIMIT $pagina, $itens_por_pagina"; //ordena normal no formato americano

$execute = $mysqli->query($sql_code) or die($mysqli->error);
while($os = $execute->fetch_assoc())
{
echo $os['id'];
echo " - ";
echo date('d-m-y', strtotime($os['data_operacao'])); // aqui você tranforma as datas recuperada do banco para formato brasileiro(Dia-mê-Ano)
echo "<br>";
}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
19 horas atrás, greg_kaippert disse:

Primeiro você ordena no sql com o formato americano, depois você transforma para o padrão brasileiro só para exibir.

 

Ex:


Ex: 

$sql_code = "select * from os order by data_operacao desc LIMIT $pagina, $itens_por_pagina"; //ordena normal no formato americano

$execute = $mysqli->query($sql_code) or die($mysqli->error);
while($os = $execute->fetch_assoc())
{
echo $os['id'];
echo " - ";
echo date('d-m-y', strtotime($os['data_operacao'])); // aqui você tranforma as datas recuperada do banco para formato brasileiro(Dia-mê-Ano)
echo "<br>";
}

 

Neste caso, retorna a data - 31-12-69

Compartilhar este post


Link para o post
Compartilhar em outros sites
21 horas atrás, greg_kaippert disse:

Primeiro você ordena no sql com o formato americano, depois você transforma para o padrão brasileiro só para exibir.

 

Ex:


Ex: 

$sql_code = "select * from os order by data_operacao desc LIMIT $pagina, $itens_por_pagina"; //ordena normal no formato americano

$execute = $mysqli->query($sql_code) or die($mysqli->error);
while($os = $execute->fetch_assoc())
{
echo $os['id'];
echo " - ";
echo date('d-m-y', strtotime($os['data_operacao'])); // aqui você tranforma as datas recuperada do banco para formato brasileiro(Dia-mê-Ano)
echo "<br>";
}

 

 

 

greg_kaippert, agora deu certo dessa maneira, mas para funcionar, troquei : 

 

while($os = $execute->fetch_assoc())

por:

 

$os = $execute->fetch_assoc();

 

Tópico RESOLVIDO, obrigada! =)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro 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


  • Conteúdo Similar

    • Por Gildvan Arley
      Olá, galera estou criando um sistema de cadastro pra meu site e estou tendo problemas com o  registro no fim do cadastro. alguém poderia me ajudar com o código
      a conexão esta OK, mãos ele não esta cadastrando o usuario
       
      cadastro.php
      <?php session_start();?> <!DOCTYPE html> <html> <head> <title>Cadastro de Usuarios</title> </head> <link rel="stylesheet" type="text/css" href="css/bootstrap.css"> <link rel="stylesheet" type="text/css" href="css/bootstrap.min.css"> <link rel="stylesheet" type="text/css" href="css/bootstrap-grid.css"> <link rel="stylesheet" type="text/css" href="css/bootstrap-reboot.css"> <link rel="stylesheet" type="text/css" href="css/bootstrap-reboot.min.css"> <script src="js/bootstrap.bundle.js"></script> <script src="js/bootstrap.js"></script> <script src="js/bootstrap.bundle.min.js"></script> <script src="js/bootstrap.min.js"></script> <script src="https://code.jquery.com/jquery-1.11.1.min.js"></script> <body> <div class=container> <h2>Formulario de Cadastro</h2> <br> <form id="formulariocadastro" method="post" action="pro_cad.php"> <div class="form-group input-icon-left"> <i class="fa fa-user"></i> <input type="text" class="form-control" name="nomec" required="true" placeholder="usernome"> </div> <div class="form-group input-icon-left"> <i class="fa fa-envelope"></i> <input type="email" class="form-control" name="emailc" required="true" placeholder="Email"> </div> <div class="form-group input-icon-left"> <i class="fa fa-envelope"></i> <input type="text" class="form-control" name="telefonec" required="true" placeholder="Telefone"> </div> <div class="form-group input-icon-left"> <i class="fa fa-lock"></i> <input type="password" class="form-control" name="senhac" required="true" placeholder="Sua senha"> </div> <div class="form-group input-icon-left"> <i class="fa fa-check"></i> <input type="password" class="form-control" name="confirmasenhac" placeholder="Repita sua senha"> </div> <div class="form-group input-icon-left"> <i class="fa fa-user"></i> <input type="text" class="form-control" name="steamidc" placeholder="Steam ID"> <a href="https://steamidfinder.com/?openid">Link da steam aqui</a></div> <button type="submit" class="btn btn-primary">Registrar-se</button> <p class="text-center text-success"> <?php if (isset($_SESSION['cadsucess'])){ echo $_SESSION['cadsucess']; unset($_SESSION['cadsucess']); } ?> </form> </div> </body> </html> conexao.php
      <?php require 'config.php'; $conexao = new mysqli(HOTS,USER,PASS,DB); if ($conexao ->connect_error){ echo "Error ao conectar com o banco de dados" .$conexao ->connect_error; }else{ echo "Conexão com o banco de dados feita com sucesso"; } ?> pro_cad.php
      <?php session_start(); require 'conexao.php'; $nome = $_POST['nomec']; $email = $_POST['emailc']; $telefone = $_POST['telefonec']; $senha = $_POST['senhac']; $steam = $_POST['steamidc']; $insert = "INSERT INTO usuarios(nome,email,telefone,senha,steam) VALUES('$nome','$email','$telefone','$senha','$steam')"; $query = $conexao->query($insert); $_SESSION['cadsucess'] = "Cadastro feito com sucesso"; header("Location: cadastro.php"); ?> config.php
      <?php define('HOTS','localhost'); define('USER','root'); define('PASS',''); define('DB','cadastro'); ?> bd.sql
      -- phpMyAdmin SQL Dump -- version 4.7.4 -- https://www.phpmyadmin.net/ -- -- Host: 127.0.0.1:3306 -- Generation Time: 12-Dez-2017 às 18:47 -- Versão do servidor: 5.7.19 -- PHP Version: 5.6.31 SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; SET AUTOCOMMIT = 0; START TRANSACTION; SET time_zone = "+00:00"; /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; /*!40101 SET NAMES utf8mb4 */; -- -- Database: `cadastro` -- -- -------------------------------------------------------- -- -- Estrutura da tabela `usuarios` -- DROP TABLE IF EXISTS `usuarios`; CREATE TABLE IF NOT EXISTS `usuarios` ( `id` int(11) NOT NULL AUTO_INCREMENT, `nome` varchar(150) NOT NULL, `email` varchar(150) NOT NULL, `telefone` varchar(15) NOT NULL, `senha` varchar(150) NOT NULL, `steam` varchar(150) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1; COMMIT; /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; não esta registrando no banco de dados desde já obrigado.
    • Por Vinicius Balbinot
      Pessoal, tenho uma tela de cadastro de transportadora e uma tela de cadastro de clientes. Ao selecionar uma transportadora na tela de cadastro de clientes preenche automaticamente o e-mail e o telefone dele...
      <?php include "Config/config_sistema.php"; $res = mysql_query("SELECT * FROM transportadoras"); $menu_items = null ; while($ln = mysql_fetch_object($res)){ $menu_items[] = $ln; } json_encode($menu_items); ?> <script> $("body").on("change","#transportadoras",function(event){ event.preventDefault(); var trigger=$(this); $.ajax ({ type: "POST", url: "buscaDadosTransportadora.php", dataType: 'json', success: function (data) { $("#telefone_transp").val(data.telefone); $("#email_transp").val(data.email); }, error: function (data) { alert("Erro"); }, }); }); </script> o retorno em json está ocorrendo tudo certo, porém ao selecionar a transportadora está retornar o alert que tem no error do jquery
    • Por gknoll
      Olá, estou fazendo um programa para cadastro de clientes e ordens de serviços de empresas, preciso realizar um select que ao administrador selecionar o cliente (utilizando de chave estrangeira) mostre todas as ordens de serviço associadas aquele cliente, tentei utilizar de um comando de listagem porém não obtive sucesso, estou utilizando mysql para armazenagem de dados, não sei quais informaçoes são necessarias para receber ajuda pois sou nova aqui mas aguardo respostas, obrigada
    • Por Darlin Wilson
      Tenho um projeto de uma Rede Social de relacionamento, busquei agregar novas idéias das demais redes sociais.
      E estou a procura de um sócio desenvolvedor!
      Para os interessados deixo meu e-mail
      Darlinwilson93@gmail.com
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.

Este projeto é mantido e patrocinado pelas empresas:
Hospedado por: