visitante_xp 0 Denunciar post Postado Fevereiro 12, 2010 Coloco o if...? Se tem um link externo pra gt ver?? O problema pode estar no jeito que o $ano esta no WHERE... O mysql_num_rows retorna somente o numero de linhas da consulta, existe alguma coisa errada na consulta para que o mysql_num_rows esteja retornande erro... Para efeito de testes coloque sua query dentro de uma variavel chamada $sql então a variavel $count fica assim: $count=mysql_query($sql); De um echo em $sql, copie o código e jogue direto no mysql e veja se este retorna algum erro... ;) Compartilhar este post Link para o post Compartilhar em outros sites
eu_Nana 0 Denunciar post Postado Fevereiro 12, 2010 Em 12/02/2010 at 18:43, 'Dee' disse: Tem como você postar tudo pra eu ver ? <?php include "../include/conexao.php"; $ano = $_GET['ano']; if(!empty($ano)) { $sql = $sql = "SELECT idata, arquivo, ano, ano_completo FROM atas where ano= " . "\"" . $ano. "\""; } else { $sql = "SELECT idata, arquivo, ano, ano_completo FROM atas"; } $rs = mysql_query($sql,$con) or die (mysql_error()); if(!empty($ano)) { $count= mysql_query("SELECT COUNT(ano) as 'Total', idata, arquivo, ano, ano_completo FROM atas where ano= " . "\"" . $ano. "\" GROUP BY ano"); echo $count; } else { $count= mysql_query("SELECT COUNT(ano) as 'Total', idata, arquivo, ano, ano_completo FROM atas"); echo $count; } $num_rows = mysql_num_rows($count); echo $num_rows; $tupla = mysql_fetch_array($count); $soma = $tupla["Total"]; $count = 0; ?> <div class="azul_ano"> Resultados da Pesquisa<br /> Documentos encontrados:<? echo "$soma"; ?> </div> <?php while($linha = mysql_fetch_array($rs)) { $id_bd = $linha['idata']; $arquivo_bd = $linha['arquivo']; $ano_bd = $linha['ano']; $anocompleto_bd = $linha['ano_completo']; $count +=1; if ($count%2==0){ $cor ="#ffffff"; }else{ $cor ="#FFFFCC"; } ?> <div class="relatorio_azul"> <div class="azul_ano"><?=$anocompleto_bd?></div> <img src="imagens/file_pdf.gif" class="imfoto" align="left"> <br /><br /> <a href="<?=$arquivo_bd?>" class="link_relatorio" target="_blank"> </a> </div> <?php }//fim do while //}//fim do if mysql_close($con); ?> Compartilhar este post Link para o post Compartilhar em outros sites
Dee 0 Denunciar post Postado Fevereiro 12, 2010 Olha Nana, fiz algumas mudancinhas no seu código de variáveis: Veja se dá certoo =) <?php include "../include/conexao.php"; $ano = $_GET['ano']; if(!empty($ano)) { $sql = "SELECT idata, arquivo, ano, ano_completo FROM atas where ano= " . "\"" . $ano. "\""; } else { $sql = "SELECT idata, arquivo, ano, ano_completo FROM atas"; } $rs = mysql_query($sql,$con) or die (mysql_error()); if(!empty($ano)) { $count = "SELECT COUNT(ano) as Total, idata, arquivo, ano, ano_completo FROM atas where ano= " . "\"" . $ano. "\" GROUP BY ano"; } else { $count = "SELECT COUNT(ano) as Total, idata, arquivo, ano, ano_completo FROM atas group by ano"; echo "Veja o que ele traz aqui: ". $count; } $linhas = mysql_fetch_array($exe); $exe = mysql_query($count, $con); $tupla = mysql_fetch_array($exe); $soma = $tupla["Total"]; $count = 0; ?> <div class="azul_ano"> Resultados da Pesquisa<br /> Documentos encontrados:<?php echo $linhas; }?> </div> <?php while($linha = mysql_fetch_array($rs)) { $id_bd = $linha['idata']; $arquivo_bd = $linha['arquivo']; $ano_bd = $linha['ano']; $anocompleto_bd = $linha['ano_completo']; $count +=1; if ($count%2==0){ $cor ="#ffffff"; }else{ $cor ="#FFFFCC"; } ?> <div class="relatorio_azul"> <div class="azul_ano"><?=$anocompleto_bd?></div> <img src="imagens/file_pdf.gif" class="imfoto" align="left"> <br /><br /> <a href="<?=$arquivo_bd?>" class="link_relatorio" target="_blank"> </a> </div> <?php }//fim do while //}//fim do if mysql_close($con); ?> Só uma coisa, quando você for fazer algo em php sempre coloque assim <?php ?>, nao somente assim: <? ?> =) Tenho que ir embora agora =/ Compartilhar este post Link para o post Compartilhar em outros sites
Evandro Oliveira 331 Denunciar post Postado Fevereiro 12, 2010 meio bagunçadinhas as queryes =x $sql = $sql = mysql_query... ????? acredito que seu campo "ano" seja um inteiro, sim? pelo que deu pra entender, você só precisa imprimir o anoCompleto e o arquivo, que será um link para download com a figurinha file_pdf.gif, ok? me diz o que acha dessa sugestão: <?php require_once('../include/conexao.php'); $ano = (!is_null($_GET['ano']))? $_GET['ano'] : ''; $sql = mysql_query('SELECT `ano_completo`,`arquivo` FROM `atas` WHERE `ano` LIKE "%'.$ano.'%"',$con); $n_documentos = mysql_num_rows($sql); echo '<h1>Resultados da pesquisa</h1> <table cellpadding="0" cellspacing="0" style="border: 1px solid #000" summary="Listagem de documentos"> <caption>Documentos encontrados '.$n_documentos.'</caption> <thead> <tr> <th>Ano</th> <th>Download</th> </tr> </thead> <tbody>'; while(false !== ($row = mysql_fetch_assoc($sql))) echo " <tr> <td>{$row['ano_completo']}</td> <td> <a href=\"{$row['arquivo']}\" > <img src=\"imagens/file_pdf.gif\" alt=\"Download\" /> </a> </td> </tr>"; echo "\n </tbody>\n</table>"; ?> Compartilhar este post Link para o post Compartilhar em outros sites
João Batista Neto 448 Denunciar post Postado Fevereiro 13, 2010 eu_Nana, Fiz algumas modificações no seu código e também coloquei alguns comentários, teste o código e veja se é o que você precisa e não deixe de ler cada comentário: <?php /** * Não use o arroba para suprimir as mensagens de erro, no ambiente de desenvolvimento * deixe exibir TODAS as mensagens para que você possa corrigi-las. Só assim você terá * um código limpo e livre de erros no ambiente de produção. */ if ( !isset( $_GET[ 'ano' ] ) ){ /** * Se o campo ano for um input text ele só não chegará ao servidor se não tiver sido enviado pelo seu * formulário. Isso normalmente significa uma tentativa de intrusão, nesses casos um Bad Request * é a forma mais adequada de avisar que sua aplicação espera esse campo, mesmo que vazio. */ header( sprintf( '%s 400 Bad Request' , $_SERVER[ 'SERVER_PROTOCOL' ] ) , true , 400 ); echo '<h1>Requisição inválida</h1>'; } else { /** * Como sua aplicação DEPENDE do conteúdo de conexao.php prefira require em vez de include */ require 'include/conexao.php'; /** * Como a consulta será a mesma para os dois casos, declare o que for comum para ambos. */ $sql = 'SELECT idata, arquivo, ano, ano_completo FROM atas'; /** * Como o ano será SEMPRE um inteiro, utilize o cast para convertê-lo, assim você estará segura * caso haja uma tentativa de intrusão. */ if ( ( $ano = (int) $_GET[ 'ano' ] ) > 0 ){ $sql .= sprintf( ' WHERE ano=%d' , $ano ); } /** * Quando se utiliza die( mysql_error() ) em ambiente de produção, caso ocorra algum erro na consulta * você irá mostrar informações possivelmente sensíveis do seu sistema, utilize isso apenas em desenvolvimento, * em produção você DEVE apenas informar que alguma coisa não saiu como esperado. * Um outro detalhe é que utilizando o die( mysql_error() ) você não fecha a conexão, isso pode se * transformar em um sério problema em um servidor compartilhado, em vez de die utilize um if para testar. */ if ( !is_resource( $rs = mysql_query( $sql , $con ) ) ){ header( sprintf( '%s 500 Internal Server Error' , $_SERVER[ 'SERVER_PROTOCOL' ] ) , true , 500 ); /** * Mostramos a mensagem para depuração apenas em localhost, em outro servidor será mostrado apenas * uma mensagem de erro pré-definida. */ if ( $_SERVER[ 'SERVER_NAME' ] == 'localhost' ){ echo '<h1>Erro na consulta</h1>'; echo 'Consulta: ' , $sql , '<br />'; echo 'Erro[ ' , mysql_errno( $con ) , ']: ' , mysql_error( $con ) , '<br />'; } else { echo '<h1>Não foi possível completar a operação, tente novamente.</h1>'; } } else { $count = 0; echo '<div class="azul_ano">Resultados da Pesquisa<br />Documentos Encontrados: ' , mysql_num_rows( $rs ) , '</div>'; /** * Quando não é especificado o tipo de retorno para a função mysql_fetch_array é utilizado por padrão * MYSQL_BOTH, isso significa que uma matriz contendo os nomes das colunas e também os indices será retornado, * fazendo com que seja utilizado recursos de memória desnecessários com a matriz maior. Se você não for utilizar * os indices, especifique MYSQL_ASSOC para que seja retornado APENAS os nomes das colunas, isso fará com que * sua aplicação seja executada mais rapidamente e menos recursos do servidor sejam consumidos. */ while ( ( $linha = mysql_fetch_array( $rs , MYSQL_ASSOC ) ) !== false ){ $id_bd = $linha[ 'idata' ]; $arquivo_bd = $linha[ 'arquivo' ]; $ano_bd = $linha[ 'ano' ]; $anocompleto_bd = $linha[ 'ano_completo' ]; $cor = ( ( ++$count % 2 ) == 0 ) ? '#ffffff' : '#FFFFCC'; echo '<div class="relatorio_azul">'; echo '<div class="azul_ano">' , $anocompleto_bd , '</div>'; echo '<img src="imagens/file_pdf.gif" class="imfoto" align="left"><br /><br />'; echo '<a href="' , $arquivo_bd , '" class="link_relatorio" target="_blank"></a>'; echo '</div>'; } /** * Nunca esqueça de liberar o recurso da consulta da memória, isso garantirá o desempenho do seu servidor * e consequentemente da sua aplicação */ mysql_free_result( $rs ); } mysql_close( $con ); } Compartilhar este post Link para o post Compartilhar em outros sites
visitante_xp 0 Denunciar post Postado Fevereiro 14, 2010 @eu_Nana, lembrei de uma coisa... Se você só ta com problema eu exibir a contage, ao inves de colocar "A contagem dos campos é igual a $linhas", por exemplo, coloca uma linha a mais no seu código, assim: $result_cont=mysql_result($count, 0, "Total"); Faz isso e ve se resolve seu problema...^^ Compartilhar este post Link para o post Compartilhar em outros sites
eu_Nana 0 Denunciar post Postado Fevereiro 16, 2010 Tópico resolvido.....realizei as sugestões acima com teste ok.....Valews pelas repostas de todos......Muito Obrigada.... http://forum.imasters.com.br/public/style_emoticons/default/joia.gif Compartilhar este post Link para o post Compartilhar em outros sites