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 Ana Paula dos Santos
      Olá pessoal, sou estudante de TI e não estou conseguindo desenvolver em php o cálculo de 3 variáveis que são escolhidas pelo usuário conforme formulário apresentado.
      Trata-se do cálculo de total de calorias ingeridas por uma pessoa, calculadas a partir da escolha do "cardápio". O cardápio apresenta apenas os nomes e em php eu preciso atribuir o valor das variáveis e somar as três variáveis escolhidas no cardápio. As escolhas são: um prato, uma sobremesa e uma bebida.
       
      O formulário está da seguinte forma:
       
      <html>
      <head>
      </head>
      <body>
      <h1><center>Quantidade de Calorias<center></h1>
      <br>
      <form method="POST" action="">
          <table align='center' border=1 width=300 height=50>
                  <tr>
                      <td align='center'>PRATOS</td>
                  </tr>
                  <tr>
                      <td><form> 
                          <input type="radio" name="pratos" value="1" checked> Arroz, feijão e carne<br>
                          <input type="radio" name="pratos" value="2"> Macarrão e frango<br>
                          <input type="radio" name="pratos" value="3"> Feijoada<br>
                          <input type="radio" name="pratos" value="4"> Sopa<br>
                          <input type="radio" name="pratos" value="5"> Pizza
                      </td></form>
                  </tr>    
          </table>
          <br>
          
          <table align='center' border=1 width=300 height=50>
                  <tr>
                      <td align='center'>SOBREMESAS</td>
                  </tr>
                  <tr>
                      <td><form> 
                          <input type="radio" name="sobremesas" value="1" checked> Salada de frutas<br>
                          <input type="radio" name="sobremesas" value="2"> Pudim<br>
                          <input type="radio" name="sobremesas" value="3"> Bolo<br>
                          <input type="radio" name="sobremesas" value="4"> Gelatina<br>
                          <input type="radio" name="sobremesas" value="5"> Torta de morango
                      </td></form>
                  </tr>    
          </table>
          <br>
          
          <table align='center' border=1 width=300 height=50>
                  <tr>
                      <td align='center'>BEBIDAS</td>
                  </tr>
                  <tr>
                      <td><form> 
                          <input type="radio" name="bebidas" value="1" checked> Água<br>
                          <input type="radio" name="bebidas" value="2"> Suco<br>
                          <input type="radio" name="bebidas" value="3"> Refrigerante<br>
                          <input type="radio" name="bebidas" value="4"> Refrigerante Light<br>
                          <input type="radio" name="bebidas" value="5"> Cerveja
                      </td></form>
                  </tr>
          </table>
          <br>
          
          <center><input type=submit value="Calcular"></center>
          
      </form>
       
      Não consigo atribuir os valores às variáveis e depois somar as variáveis selecionadas em php!!!
    • Por Thiiiziiin
      Olá pessoal, como vão?
      Estou com o seguinte problema, tenho uma tabela em um banco de dados e estou pegando os valores para gerar gráficos, com a API Charts.js.
      Estou fazendo um gráfico dinâmico, em tempo real, porém, se eu insiro um dado no banco de dados, não consigo alterar no gráfico (é preciso dar refresh na página para alterar).
      Toda a conexão com o banco de dados está correta, pois se eu atualizo a página, o gráfico altera com os valores que defini.

      Eu fiz testes utilizando o math.random(), e funcionou, atualizava conforme os valores aleatórios gerados por essa função.
      Quando defino para ler do banco de dados, fica estático.
      Minha conclusão é que a variável de conexão do banco de dados não se altera em tempo real.

      Existe a possibilidade de atualizar a variável a cada segundo em PHP?
      Segue o código que estou fazendo:
       
      <?php include('conexao.php'); $select = $PDO->query("SELECT corrente FROM tbdados ORDER BY id DESC limit 1"); $select->execute(); $result = $select->fetch(); // retorno do banco de dados mysql_close($select); ?> // Abaixo é o javascript da API Charts.js modificada <script type="text/javascript"> var ctx = document.getElementById('myChart').getContext("2d"); var gradientStroke = ctx.createLinearGradient(0, 0, 0, 0); gradientStroke.addColorStop(0, '#FFC800'); var pointStroke = ctx.createLinearGradient(0, 0, 0, 0); pointStroke.addColorStop(0, '#3f3f3f'); var gradientFill = ctx.createLinearGradient(0, 250, 0, 50); gradientFill.addColorStop(0, "rgba(63, 63, 63, 0.7)"); gradientFill.addColorStop(1, "rgba(255, 182, 0, 1)"); var contador = 0; var corrente = <?php echo $result['corrente']; ?>; // variável que foi capturada do banco var segundos = 1000; <?php echo $rows; ?> var myChart = new Chart(ctx, { type: 'line', data: { labels: ["", "", "", "", "", "", "", "", "", "" ], datasets: [{ label: "Corrente (A)", borderColor: gradientStroke, pointBorderColor: gradientStroke, pointBackgroundColor: gradientStroke, pointHoverBackgroundColor: pointStroke, pointHoverBorderColor: gradientStroke, pointBorderWidth: 5, pointHoverRadius: 10, pointHoverBorderWidth: 1, pointHitRadius: 25, pointRadius: 3, fill: true, backgroundColor: gradientFill, borderWidth: 2, data: [, , , , , , , , , ,] }] }, options: { legend: { position: "bottom", labels: { fontColor: 'rgba(255,255,255,0.5)' } }, scales: { yAxes: [{ ticks: { fontColor: "rgba(255,255,255,0.5)", fontStyle: "bold", beginAtZero: true, maxTicksLimit: 10, padding: 20, }, gridLines: { drawTicks: false, display: false } }], xAxes: [{ gridLines: { zeroLineColor: "transparent" }, ticks: { padding: 20, fontColor: "rgba(255,255,255,0.5)", fontStyle: "bold" } }] } } }); function adddata(){ myChart.data.labels.push(contador + " segundos"); myChart.data.labels.splice(0, 1); myChart.data.datasets[0].data.splice(0, 1); console.log(myChart.data.datasets[0].data); myChart.data.datasets[0].data.push(corrente); myChart.update(); contador+=(segundos / 1000); } setInterval(function(){ adddata(); },segundos); var option = { showLines: true, scales: { yAxes: [{ display: true, ticks: { beginAtZero:true } }] } }; $(function() { setTime(); function setTime() { var date = new Date().getTime(); var string = "Corrente:<br/><span class='corrente_valor'>"+corrente+"</span><br/>Amperes"; setTimeout(setTime, segundos); $('#correnteCirculo').html(string); } }); </script>  
    • Por PedroTodorovski
      Quais a vantagens e as desvantagens de desenvolver um menu dinâmico (banco de dados) ao invés de um menu estático? Estou desenvolvendo um ecommerce e tenho essa dúvida.
    • Por brunobos21
      Olá, eu criei um formulario que salva os dados em um banco de dados mysql, e criei uma pagina de relatorio para mostrar todo mundo que se cadastra nesse banco, até ai tudo certo, só que eu tenho um campo "Status" que eu queria colocar um checkbox para o administrador poder marcar esse campo e mudar no mysql o valor do Status para 1 sempre que clicar no botão atualizar, e se o administrador desmarcar antes apertar o botão Atualizar, não mudar na tabela. Já pesquisei em tudo quer canto e não achei, se puderem me ajudar enviando algum modelo de código ou algum tópico aqui do forúm que ja fale sobre isso, agradeço. Aqui está meu código:
      <?php // definições de host, database, usuário e senha $host = "host"; $banco = "banco"; $user = "user"; $pass = "pass"; $tbl_name="tabela";   $nome = $_POST['nome']; $numero = $_POST['numero']; $email = $_POST['email']; $cidade = $_POST['cidade']; $whatsapp = $_POST['whatsapp']; $data = $_POST['data']; $status = $_POST['status'];   // conecta ao banco de dados $con = mysql_pconnect($host, $user, $pass) or trigger_error(mysql_error(),E_USER_ERROR); // seleciona a base de dados em que vamos trabalhar mysql_select_db($banco, $con); // cria a instrução SQL que vai selecionar os dados $query = sprintf("SELECT * FROM Pesquisas"); // executa a query $dados = mysql_query($query, $con) or die(mysql_error()); // transforma os dados em um array $linha = mysql_fetch_assoc($dados); // calcula quantos dados retornaram $total = mysql_num_rows($dados); ?> <!DOCTYPE html> <html lang="en"> <head>     <title>Relatorio</title>     <meta charset="latin1_swedish_ci">     <meta name="viewport" content="width=device-width, initial-scale=1"> <!--===============================================================================================-->       <link rel="icon" type="image/png" href="images/icons/favicon2.ico"/> <!--===============================================================================================-->     <link rel="stylesheet" type="text/css" href="vendor/bootstrap/css/bootstrap.min.css"> <!--===============================================================================================-->     <link rel="stylesheet" type="text/css" href="fonts/font-awesome-4.7.0/css/font-awesome.min.css"> <!--===============================================================================================-->     <link rel="stylesheet" type="text/css" href="vendor/animate/animate.css"> <!--===============================================================================================-->     <link rel="stylesheet" type="text/css" href="vendor/select2/select2.min.css"> <!--===============================================================================================-->     <link rel="stylesheet" type="text/css" href="vendor/perfect-scrollbar/perfect-scrollbar.css"> <!--===============================================================================================-->     <link rel="stylesheet" type="text/css" href="css/util.css">     <link rel="stylesheet" type="text/css" href="css/main.css"> <!--===============================================================================================--> <script src="vendor/jquery/jquery-3.2.1.min.js"></script> <script type="text/javascript"> //--> </script> </head> <body> <form action=" " method="post">     <div class="limiter">         <div class="container-table100">             <div class="wrap-table100">                 <div class="table100">                     <table>                         <thead>                             <tr class="table100-head">                                 <th class="column1">Nome</th>                                 <th class="column2">Numero</th>                                 <th class="column3">Cidade</th>                                 <th class="column4">E-mail</th>                                 <th class="column5">Whatsapp</th>                                 <th class="column6">Tipo</th>                                 <th class="column6">Data</th>                                 <th class="column6">Status</th>                             </tr>                         </thead>                           <?php                         // se o número de resultados for maior que zero, mostra os dados                         if($total > 0) {                     // inicia o loop que vai mostrar todos os dados                     do {                         ?>                         <tbody>                                 <tr>                                     <td class="column1"><?=$linha['nome']?></td>                                     <td class="column2"><?=$linha['numero']?></td>                                     <td class="column3"><?=$linha['cidade']?></td>                                     <td class="column4"><?=$linha['email']?></td>                                     <td class="column5"><?=$linha['whatsapp']?></td>                                     <td class="column6"><?=$linha['tipo']?></td>                                     <td class="column6"><?=$linha['data']?></td>                                     <td class="column6">                                     <input type=checkbox name="banco[]" value="1"><?=$linha['status']?>                                     </td>                                 </tr>                                </tbody>                         <?php                     // finaliza o loop que vai mostrar os dados                     }while($linha = mysql_fetch_assoc($dados));                         // fim do if                         }                         ?>                     </table>                     <div class="container-contact2-form-btn">                                 <div class="wrap-contact2-form-btn">                                     <div class="contact3-form-bgbtn"></div>                                     <button class="contact2-form-btn" type="submit" value="Enviar" name="enviar">                                         Atualizar                                     </button>                                 </div>                             </div>                 </div>             </div>         </div>     </div> </form>   <!--===============================================================================================-->       <script src="vendor/jquery/jquery-3.2.1.min.js"></script> <!--===============================================================================================-->     <script src="vendor/bootstrap/js/popper.js"></script>     <script src="vendor/bootstrap/js/bootstrap.min.js"></script> <!--===============================================================================================-->     <script src="vendor/select2/select2.min.js"></script> <!--===============================================================================================-->     <script src="js/main.js"></script> </body> </html> <?php // tira o resultado da busca da memória mysql_free_result($dados); ?>
×

Informação importante

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