alvarogtc 1 Denunciar post Postado Março 31, 2011 Pessoal estou com uma dificuldade em fazer o seguinte: Tenho uma tabela tabblog dentro tenho o seguinte Blog_Data (YYYY-mm-dd) oque quero fazer é um select q verifique todos os posts e agrupe pelo mes q seria algo talvez como : MONTH(Blog_Data) gerando um select pelos meses, digamos que tenha postagens apenas em setembro, outubro e dezembro de 2010 e marco de 2011 no select teria apenas setembro/2010 outubro/2010 e dezembro/2010 e por fim marco/2011 dai pra frente eu sei fazer q seria retornar os resultados do mes selecionado. Se alguem puder dar uma força de como fazer... vlw Compartilhar este post Link para o post Compartilhar em outros sites
Victor Cometti 8 Denunciar post Postado Março 31, 2011 então você quer ordenar e não agrupar. utilize order by e para buscar entre duas datas utilize between Compartilhar este post Link para o post Compartilhar em outros sites
alvarogtc 1 Denunciar post Postado Março 31, 2011 nao é isso q quero amigo eu tenho varios posts no mes de setembro, outubro etc quero fazer um select q verificar em qual mes foi feito as postagens e qual ano ai faco um select que retorna mes/ano (apenas que tiverem postagens) pra dair em diante fazer uma busca baseada no mes selecionado. Compartilhar este post Link para o post Compartilhar em outros sites
willwalker 2 Denunciar post Postado Março 31, 2011 Me manda o SQL que eu faço o select. Compartilhar este post Link para o post Compartilhar em outros sites
alvarogtc 1 Denunciar post Postado Março 31, 2011 Me manda o SQL que eu faço o select. CREATE TABLE IF NOT EXISTS `tabblog` ( `Blog_Id` int(11) NOT NULL AUTO_INCREMENT, `Blog_Nome` varchar(100)NOT NULL, `Blog_Data` date NOT NULL, `Blog_Status` int(25) NOT NULL, PRIMARY KEY (`Blog_Id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin AUTO_INCREMENT=8 ; Ate onde pesquisei seria algo que comecaria assim $Sql = "SELECT DISTINCT(MONTH(Blog_Data)) AS Blog_Mes FROM tabblog WHERE Blog_Status = 1"; so que dai pra frente ja simulei dezenas de formas e nao consegui Compartilhar este post Link para o post Compartilhar em outros sites
willwalker 2 Denunciar post Postado Março 31, 2011 Seria mais ou menos assim certo: A query é essa: SELECT tabblog.Blog_Id, tabblog.Blog_Nome, tabblog.Blog_Data, tabblog.Blog_Status, COUNT(tabblog.Blog_Id) AS total, DATE_FORMAT(tabblog.Blog_Data, '%M/%Y') AS `data` FROM tabblog GROUP BY Blog_Data Você vai ver que ele vai trazer em inglês, ai tu muda pelo PHP. <?php setlocale(LC_ALL, 'pt_BR'); //Seto a lingua padrão. É bom isso caso tu queira fazer em 3 linguas ou mais. while($rss - mysql_fetch_array($sql)){ ?> <?=ucwords(strftime("%M/%Y", strtotime($rss['data'])))?> (<?=$rss['total']?>) <?php } setlocale(LC_ALL, 0); //Fecho o setlocale para não dar conflito com o restante da página. ?> Abraços Walker Compartilhar este post Link para o post Compartilhar em outros sites
alvarogtc 1 Denunciar post Postado Março 31, 2011 ta retornado a quantidade certinho e tudo, o unico problema q apresentou foi fazendo assim: ucwords(strftime("%M/%Y", strtotime($rss['data']))) ta retornado 00/1969 agora se chamo so $rss['data'] ai retorna january/2011 etc em ingles mesmo usando setlocate... Ai resolvi assim $Sql18 = "SELECT tabblog.*, COUNT(tabblog.Blog_Id) AS total, tabblog.Blog_Data AS data FROM tabblog GROUP BY Blog_Data"; $Query18 = mysql_query($Sql18, $Conn); while($Rs18 = mysql_fetch_array($Query18)){ $select.= "<option value=\"1\">".ucfirst(strftime("%B", strtotime($Rs18["data"]))). "/" .date("Y", strtotime($Rs18["data"]))."</option>"; } Compartilhar este post Link para o post Compartilhar em outros sites
willwalker 2 Denunciar post Postado Março 31, 2011 Se resolveu é o que importa Compartilhar este post Link para o post Compartilhar em outros sites