Elvys Pereira Postado Fevereiro 9, 2010 Denunciar Share Postado Fevereiro 9, 2010 Olá pessoal!Estou com um probleminha. Esse sistema deveria mostrar as entradas dos arquivos por mês, mas ele mostra tudo, mesmo que você selecione o mês.O mês pega por get, a query deve até lê-lo mas não separa...Ah, e o campo data é mais ou menos assim: "DD/MM/AAAA HH:mm"<? //include config settings (...) $mes = $_GET['mes']; switch($mes){ case jan09: $m = "/01/"; break; case fev09: $m = "/02/"; break; case mar09: $m = "/03/"; break; case abr09: $m = "/04/"; break; case mai09: $m = "/05/"; break; case jun09: $m = "/06/"; break; case jul09: $m = "/07/"; break; case ago09: $m = "/08/"; break; case set09: $m = "/09/"; break; case out09: $m = "/10/"; break; case nov09: $m = "/11/"; break; case dez09: $m = "/12/"; break; } echo $m; function verPosts() { global $connection, $limit; $page = $_GET[/page][page]; $query_count = "SELECT titulo FROM arquivos"; $result_count = @mysql_query($query_count); $totalrows = mysql_num_rows($result_count); if(!$page) { $page = 1; } $limitvalue = $page * $limit - ($limit); $query = "SELECT * FROM arquivos WHERE data LIKE '%".$m."%' LIMIT $limitvalue, $limit"; $result = @mysql_query($query) or die("Error: " . mysql_error()); if(mysql_num_rows($result) == 0) { echo "Sem mensagens!"; } //loop to display all items while ($row = mysql_fetch_assoc($result)) { //define variables $data = $row['data']; $titulo = $row['titulo']; $autor = $row['autor']; $conteudo = $row['conteudo']; (...) $self = $_SERVER['PHP_SELF']; echo"<center> <table width=80% align=center cellspacing=3 border=0> <tr><td class=newsbg width=80%><table class=newsbg width=100%><tr><td width=80><img src=$avatar></td> <td class=newsbg><center><b><big>$titulo</big></b><br> Escrito por <b>$autor</b> em $data.<br> $mostreComentarios <br> </center> </td></tr></table></td></tr><tr><td valign=top class=news> $conteudo </td></tr></table> <br>"; //end } if($page > 1) { $pageprev = $page - 1; echo "<a href=\"{$_SERVER['PHP_SELF']}?page=$pageprev\">Ver</a> "; echo "\n"; } else { echo "Ver "; echo "\n"; } $numofpages = $totalrows / $limit; for($i = 1; $i <= $numofpages; $i++) { if($i == $page) { echo "$i"; echo " "; echo "\n"; } else { echo "<a href=\"{$_SERVER['PHP_SELF']}?page=$i\">$i</a> "; echo "\n"; } } if(($totalrows % $limit) != 0) { if($i == $page) { echo "$i"; echo " "; echo "\n"; } else { echo "<a href=\"{$_SERVER['PHP_SELF']}?page=$i\">$i</a> "; echo "\n"; } } if(($totalrows - ($limit * $page)) > 0) { if(!$page) { $page = 1; } $pagenext = $page + 1; echo "<a href=\"{$_SERVER['PHP_SELF']}?page=$pagenext\">Próxima</a>"; echo "\n"; } else { echo " Próxima "; echo "\n"; } } //switch between functions according to action passed along with URL switch($_GET['action']) { case 'all': verPosts(1); break; default: verPosts(); } ?> </center> Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 jissa Postado Fevereiro 9, 2010 Denunciar Share Postado Fevereiro 9, 2010 Supondo que o campo seja DATE, faça o seguinteremova as barras dos meses do swith deixe só os numeros exemplo $m = "01";Altere a queryde:$query = "SELECT * FROM arquivos WHERE data LIKE '%".$m."%' LIMIT $limitvalue, $limit";para:$query = "SELECT * FROM arquivos WHERE month( data ) = '$m' LIMIT $limitvalue, $limit"; Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Elvys Pereira Postado Fevereiro 9, 2010 Autor Denunciar Share Postado Fevereiro 9, 2010 Supondo que o campo seja DATE, faça o seguinteremova as barras dos meses do swith deixe só os numeros exemplo $m = "01";Altere a queryde:$query = "SELECT * FROM arquivos WHERE data LIKE '%".$m."%' LIMIT $limitvalue, $limit";para:$query = "SELECT * FROM arquivos WHERE month( data ) = '$m' LIMIT $limitvalue, $limit";Ops, o campo não é date, é varchar.Exemplo: 30/11/2009 22:10 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 jissa Postado Fevereiro 9, 2010 Denunciar Share Postado Fevereiro 9, 2010 humm , varchar para data complicabem, uma coisa que pode fazer é criar um campo data2 datetime e colocar o conteudo do data nele, depois que estiver Ok remove o data e renomeia o data2 para data se não quiser ter este trabalho, e achar que esta bom da forma que esta, voce pode usar a função substrind direto no seu sqlficaria algo como:$query = "SELECT * FROM arquivos WHERE substring( data, 4, 2) = '$m' LIMIT $limitvalue, $limit";porem eu aconselho usar o datetime que se for ordenar, agrupar ficaria mais facilqualquer dufida sobre a função do mysql de uma olhada em : http://dev.mysql.com/doc/refman/5.0/en/string-functions.html Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Elvys Pereira
Olá pessoal!
Estou com um probleminha. Esse sistema deveria mostrar as entradas dos arquivos por mês, mas ele mostra tudo, mesmo que você selecione o mês.
O mês pega por get, a query deve até lê-lo mas não separa...
Ah, e o campo data é mais ou menos assim: "DD/MM/AAAA HH:mm"
Link para o comentário
Compartilhar em outros sites
3 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.