Ir para conteúdo

POWERED BY:

Arquivado

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

PaladinoMedieval

[Resolvido] Filtro retornando com erro

Recommended Posts

Pessoal estou com um probleminha que nao estou encontrando o erro..

 

Fiz um relatorio, e agora preciso fazer uma consulta para tal..

 

Acontece que ele esta fazendo corretamente o filtro mas na hora de mostrar o relatorio o campo de filtro está aparecendo apenas o primeiro Caracter.

 

Como no exemplo abaixo:

 

Nome: T

RG: Teste

Placa: Teste

Veiculo: Teste

 

O filtro foi feito no campo "Nome", e como podemos notar ele nao retorna 'Teste' apenas o primeiro caracter 'T'

 

 

Abaixo está parte do código onde eu acredito estar localizado o erro

 

$nome = $_POST['nome'];

	$pesquisa1 = @mysql_query("SELECT cdg, nome, rg, placa, veiculo FROM cheg_agregados WHERE nome LIKE '%$nome%'");
		$nlinhas1 = @mysql_num_rows($pesquisa1);
		for($i=0;$i<$nlinhas1;$i++){

		$linha1 = @mysql_fetch_array($pesquisa1);
			$cdg[$i] = $linha1['cdg'];
			$nome[$i] = $linha1['nome'];
			$rg[$i] = $linha1['rg'];
	     	        $placa[$i] = $linha1['placa'];
			$veiculo[$i] = $linha1['veiculo'];

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenta assim LIKE '%".$nome."%'

 

 

 

Usa While ao invés de for e Não oculte.

$total = mysql_num_rows($pesquisa1);
               
if($total== 0 ){
echo "Não há registro";
)else{
while($linha1 = mysql_fetch_array($pesquisa1)){
                        $cdg[$i] = $linha1['cdg'];
                        $nome[$i] = $linha1['nome'];
                        $rg[$i] = $linha1['rg'];
                        $placa[$i] = $linha1['placa'];
                        $veiculo[$i] = $linha1['veiculo'];


}// fim while
}// fim if vazio

Compartilhar este post


Link para o post
Compartilhar em outros sites

Só faltou dar um echo $linha['nome'], por isso nao apareceu

 

Faça 3 teste..

 

1 - dê um echo $total para ver quantos registros ele trás.

 

2 - dentro do while dê um print_r($linha1);

 

3 - tire o WHERE da consulta e veja se trás todos os dados.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenta isso

 

<?php
   $nome = $_POST['nome'];

   $pesquisa1 = "SELECT cdg, nome, rg, placa, veiculo FROM cheg_agregados WHERE nome LIKE '%$nome%'";
   $exe = mysql_query($pesquisa1);
   $nlinhas1 = mysql_num_rows($exe);
   
   echo "<table border='0' width='70%'>
   		 <tr>
		 	<td>Código</td>
			<td>Nome</td>
			<td>RG</td>
			<td>Placa</td>
			<td>Veículo</td>
		</tr>";
		
   while($linha1 = mysql_fetch_array($exe))
   {
   	   echo "<tr>
	   	        <td>$$linha1[cdg]</td>
		        <td>linha1[nome]</td>
      	        <td>$linha1[rg]
      	        <td>$linha1[placa]
        	    <td>$linha1[veiculo]
			 </tr>";
   }
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites


$pesquisa1 = @mysql_query("SELECT cdg, nome, rg, placa, veiculo FROM cheg_agregados WHERE nome LIKE '%" . $nome . "%'");

while ($row = mysql_fetch_assoc($pesquisa1)){

echo $row['nome'];

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara fiz um pouquinho diferente mas deu certo !!!

 

Graças a sua ideia eu consegui pensar numa outra possibilidade..

 

Ficou assim:

$nome = $_POST['nome'];

$pesquisa1 = @mysql_query("SELECT cdg, nome, rg, placa, veiculo FROM cheg_agregados WHERE nome LIKE '%".$nome."%'");

	$linhas = @mssql_num_rows ($pesquisa1);
	if($linhas==0){		

		}else{	$total = 0;
				$tota4 = 0;
				for($i=0;$i<$linhas;$i++){

				$linha1 = @mssql_fetch_array($pesquisa1);
				$cdg[$i] = $linha1['cdg'];
				$nome[$i] = $linha1['nome'];
				$rg[$i] = $linha1['rg'];
				$placa[$i] = $linha1['placa'];
				$veiculo[$i] = $linha1['veiculo'];

ValeuuuU cara ajudou muito mesmo

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.