Ir para conteúdo

POWERED BY:

Arquivado

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

eu_Nana

[Resolvido] Consulta dados

Recommended Posts

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
  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

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

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

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

@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

×

Informação importante

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