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 raphaelgs
      Preciso de um sistema que o usuário do site, faça o upload das fotos dentro de alguns moldura com três imagens, e que ele veja a Previa de como vai ficar depois disso conclua a comprar.
      Alguém faça este sistema.
      entre em contato para mais informações pelo whats 035 998138756.
      mande orçamento para raphael@comunicandoideias.com.br 

    • Por Thiago Castro
      Alguem me ajuda em uma coisa?
      Queria descobrir como faz para ter uma area restrita para quem está logado. Tipo,registrou ou logou-se da pra entrar,e se tentar entrar e nao estiver logado ao tentar entrar nela será redirecionado a pagina de registro. Desde ja,agradeço.
       
    • Por clickanapolis
      Pessoal desculpa a pergunta pode parecer simples, estou criando um login para um cliente, e preciso que quando o cliente entrar pela primeira vez no sistema automaticamente o sistema armazena o numero do cnpj dele, assim toda vez que ele acessar o sistema já vir preenchido para ele não precisar preencher toda vez, assim ele só preencheria novamente o usuario e senha pois esses não quero que venha preenchido.
    • Por beto8km
      Antes de formatar meu computador eu executava aplicações em php pelo botao admin do apache no painel de controle do xampp porem agora clico ali e me abre o navegador onde a aplicação nao roda bem, ja fiz testes colocando site em htdocs pra ver se estava funcionando em browser localhost abriu normal mas gostaria de nao usar o browser pois a aplicação nao roda bem no navegador so naquela janelinha que abria ali, se alguem puder me dar uma luz? 
    • Por juliosilvajr
      Estou desenvolvendo uma aplicação que calcula a distancia entre dois endereços sendo um ja pré determinado usando a API V3 do Google Maps ,porém quando vou rodar a aplicação no servidor php, ela não funciona
      Segue abaixo o codigo completo
      PS: Sou novato nisso tudo 
       
      <!DOCTYPE html>
      <html>
      <head>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css" type="text/css">
        <link rel="stylesheet" href="https://v40.pingendo.com/assets/4.0.0/default/theme.css" type="text/css">
        <title>Lampada</title>
        <style type="text/css">
          .hidden {
            display: none;
          }
        </style>
        <script src="http://code.jquery.com/jquery-1.8.1.js" type="text/javascript"></script>
      </head>
      <body>
        <div class="py-5">
          <div class="container">
            <div class="row">
              <div class="col-md-12">
                <h1 class="display-1">PSHE
                  <br> </h1>
              </div>
            </div>
          </div>
        </div>
        <div class="py-5">
          <div class="container">
            <div class="row">
              <div class="col-md-9">
                <label for="txtDestino">
                  <strong>Digite seu Endereço</strong>
                </label>
              </div>
            </div>
                <div class="row">
              <div class="col-md-9">
                <input type="text" id="txtDestino" class="field" style="width: 400px;"> </div>
              <br>
              <br>
              <div class="col-md-9">
                <select name="cidade" id="cidade" type="text">
                  <option>Selecione...</option>
                  <option value="Sorocaba">Sorocaba</option>
                  <option value="Votorantim">Votorantim</option>
                </select>
              </div>
            </div>
           </form>
            <br>
            <br>
            <div class="row">
              <div class="col-md-12">
                <input type="button" value="Calcular distância" onclick="CalculaDistancia()" class="btnNew"> </div>
            </div>
            <br>
            <br>
            <div>
              <span id="litResultado">&nbsp;</span>
            </div>
            <div>
                   
          </div>          
          </div>
        </div>
        
        <div class="py-5 text-white bg-warning">
          <div class="container">
            <div class="row">
              <div class="col-md-12 mt-3 text-center">
                <p>Rua Armando Caldini
                  <br>Sorocaba -SP
                  <br>
                  <br>(15) 99614-5279
                  <br>© Grupo PSHE - Todos os Direitor reservados</p>
              </div>
            </div>
          </div>
        </div>
        <script src="http://maps.google.com/maps/api/js?sensor=false"></script>
        <script type="text/javascript">
            function CalculaDistancia() {
                          $('#litResultado').html('Aguarde...');
                          //Instanciar o DistanceMatrixService
                          var service = new google.maps.DistanceMatrixService();
                          
                      
                      
                          //executar o DistanceMatrixService
                          service.getDistanceMatrix(
                            {
                                //Origem
                                origins: ["Rua Armando Caldini 161 Sorocaba"],
                                //Destino
                                destinations: [$("#txtDestino").val() + $("#cidade").val()],
                                //Modo (DRIVING | WALKING | BICYCLING)
                                travelMode: google.maps.TravelMode.DRIVING,
                                //Sistema de medida (METRIC | IMPERIAL)
                                unitSystem: google.maps.UnitSystem.METRIC
                                //Vai chamar o callback
                            }, callback);
                      }
                      //Tratar o retorno do DistanceMatrixService
                      function callback(response, status) {
                          //Verificar o Status
                          if (status != google.maps.DistanceMatrixStatus.OK)
                              //Se o status não for "OK"
                              $('#litResultado').html(status);
                          else {
                              //Se o status for OK
                              //Endereço de destino = response.destinationAddresses
                              //Distância = response.rows[0].elements[0].distance.text
                              //Preco =  response.rows[0].elements[0].distance.value*0.0009).toFixed(2)
                              //Duração = response.rows[0].elements[0].duration.text
                              $('#litResultado').html(
                              
                              
                                  "<strong>Destino:</strong> " + response.destinationAddresses +
                                  "<br /><strong>Distância</strong>: " + response.rows[0].elements[0].distance.text +
                                  "<br /><strong>Preço</strong>: " +"R$: "+(response.rows[0].elements[0].distance.value*0.0009).toFixed(2)+
                                  " <br /><strong>Duração</strong>: " + response.rows[0].elements[0].duration.text
                          
                                  );
                             
                             
                          }
                      }
        </script>
       
      </body>
      </html>
       
       
×

Informação importante

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