Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

C.Moura

[Resolvido] Pegar quantidade por datas.

Recommended Posts

Olá pessoal.

 

Estou tendo uma dúvida em PHP que não consigo resolver.

 

É o seguinte:

 

Tenho uma Query Mysql no meu Código PHP que me retorna algo como:

 

 

30/05/2009
01/02/2010
05/02/2010
06/03/2010

O que eu gostaria de fazer é contar quantas linhas tem o ano e o mês iguais, dinamicamente.

 

Ou seja, queria que me retornasse algo como:

 

05/2009 - 1
02/2010 - 2
03/2010 - 1

Mas não tenho ainda a mínima idéia de como desenvolver a lógica e codar isso em PHP.

 

Alguém pode me dar uma dica?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Exemplo:

$sql = mysql_query("SELECT COUNT(id) as total,datahora,DATE_FORMAT(datahora,'%m/%Y') as data_formatada FROM artigos GROUP BY month(datahora),YEAR(datahora)");
while($dados = mysql_fetch_assoc($sql)){
echo $dados['data_formatada'].' - '.$dados['total'].'<br>';
}

Tabela usada:

CREATE TABLE IF NOT EXISTS `artigos` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `id_categoria` int(10) unsigned DEFAULT NULL,
  `id_usuario` int(10) unsigned DEFAULT NULL,
  `titulo` varchar(100) DEFAULT NULL,
  `datahora` datetime DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Exemplo:

$sql = mysql_query("SELECT COUNT(id) as total,datahora,DATE_FORMAT(datahora,'%m/%Y') as data_formatada FROM artigos GROUP BY month(datahora),YEAR(datahora)");
while($dados = mysql_fetch_assoc($sql)){
echo $dados['data_formatada'].' - '.$dados['total'].'<br>';
}

Tabela usada:

CREATE TABLE IF NOT EXISTS `artigos` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `id_categoria` int(10) unsigned DEFAULT NULL,
  `id_usuario` int(10) unsigned DEFAULT NULL,
  `titulo` varchar(100) DEFAULT NULL,
  `datahora` datetime DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

Funcionou perfeitamente! Obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ops,

 

Sem querer abusar da boa vontade de vocês...

 

Testei com o teste e deu certo.

 

Mas a minha Query é algo do tipo

 

$resultado = mysql_query("SELECT * FROM minhatabela WHERE code!=\"\" ". 
             (($searchArgs != "") ? "AND {$searchArgs}" : "")."");

 

Onde a variável $searchArgs muda os valores sempre, mas segue o padrão:

 

calldate > '2010-04-04 00:00:00' AND calldate < '2010-07-09 23:59:59'

Poderia alguém dar me uma dica?

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

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