Ir para conteúdo
Fórum Script Brasil
  • 0

Iniciante: Mostrar Resultado De Uma Pesquisa


wbb

Pergunta

Olá!

Sou iniciante, e gostaria de tirar uma dúvida que tenho certeza ser muito simples à maioria de vocês...

É o seguinte: Eu faço uma consulta ao no banco de dados ("select * from tabela order by nome", por exemplo) e preciso que, usando while sejam impressos na tela tudo o que foi encontrado, iniciando do primeiro registro e indo ao último. Só isso!

No código abaixo o while executa este trabalho, porém acredito que exista uma maneira mais simples, ou mais direta.

   
$strsql = "Select * from tab1 order by NOME";
$resp = mysql_query($strsql, $id); 

   if ($resp) {
      $dados = mysql_fetch_array($resp); 
      $linhas = mysql_num_rows($resp);
      echo  "Número de registros encontrados no BD: $linhas <BR>";

      $linhasini = 1;
      
      while ($linhasini <= $linhas) {
            echo "Nome: " . $dados['NOME']; 
            echo "<br>";
            echo "Cidade: " . $dados['CIDADE'];
            echo "<br>";
            echo "Fone: " . $dados['FONE'];
            echo "<br><br>";
            
            $linhasini ++;
            $dados = mysql_fetch_array($resp);
      }
   }
Penso em algo do tipo:
while not eof {
...
código
...
}
No exemplo do site PHP.NET, é apresentado o código abaixo, mas só imprime o último registro encontrado na pesquisa:
while ($row = mysql_fetch_array(mysql_query($strsql, $id), MYSQL_BOTH)) {
         printf ("ID: %s  Nome: %s", $row[0], $row["NOME"] . "<BR><BR><BR>");
}

Alguém pode dar uma ajuda?

Como faço para imprimir a lista de registros encontrados?

Como faço para posicionar o ponteiro num registro específico da lista da pesquisa e imprimir apenas este?

Valeu

wbb

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0

$busca="João";

$strsql = "Select * from tab1 WHERE LIKE NOME '%".$busca."%' order by NOME";

$resp = mysql_query($strsql, $id);

  if ($resp) {

     //$dados = mysql_fetch_array($resp);

     $linhas = mysql_num_rows($resp);

     echo  "Número de registros encontrados no BD: $linhas <BR>";

     $linhasini = 1;

    

     while ($dados = mysql_fetch_array($resp))

    {

           echo "Nome: " . $dados['NOME'];

           echo "<br>";

           echo "Cidade: " . $dados['CIDADE'];

           echo "<br>";

           echo "Fone: " . $dados['FONE'];

           echo "<br><br>";

     }

  }

Seria isso ?!

Link para o comentário
Compartilhar em outros sites

  • 0
Guest Marcos Silva

Bem, eu pelo menos faço sempre assim, espero que ajude:

//Query

$query = mysql_query ("select * from tabela order by nome");

while ($resultado = mysql_fetch_array($query)) {

// aqui vão as variáveis que armazenaram os campos da tabela

$id = $resultado["id"] // Entre colchetes você coloca o nome do campo que está na sua tabela mysql

$nome = $resultado["nome"];

$email = $resultado["email"];

}

echo "ID = ".$id;

echo "Nome = ".$nome;

echo "E-Mail = ".$email;

?>

Geralmente é isto q eu faço, e funciona normal.

Até mais, espero ter ajudado.

Link para o comentário
Compartilhar em outros sites

  • 0

Valeu Gladisson. Funcionou exatamente como no código que eu mostrei, só que realmente é bem mais profissional. O exemplo do Marcos Silva eu não testei, mas me parece ser igual ao do Gladisson, portanto, deve funcionar também... valeu!

Faltou então apenas uma das questões:

Como faço para posicionar o ponteiro num registro específico da lista da pesquisa retornada? Por exemplo:

Supondo que a pesquisa retornou:

joão1

joão2

joão3

joão4

Eu preciso que o ponteiro vá para o registro cujo o NOME é "joão2". Como faço isso?

Assim como, também preciso saber como navegar por entre os registros, ou seja, se eu estiver no registro cujo nome é "joão1" como executo "Next", ou "last", etc..

Agradeço a atenção e, só lembrando, sou iniciante mesmo e peço que me desculpem se as questões são tão básicas, mas infelizmente tenho que começar de algum lugar né! hehehe

Valeu!

wbb

Link para o comentário
Compartilhar em outros sites

  • 0

Dei uma pesquisada na função "mysql_fetch_array", que a princípio me parecia fazer o que preciso, mas não funcionou. no exemplo que citei, usei a função com a intenção de posicionar o ponteiro num determinado registro, conforme abaixo:

  echo "<b>Posicionando o cursor no registro especificado:</b><br>";

 

  $strsql = "Select * from tab1 order by NOME";

  $resp = mysql_query($strsql, $id);

  $dados = mysql_fetch_array($resp);

  $linhas = mysql_num_rows($resp);

  echo  "Número de registros encontrados no BD: $linhas <BR>"; // Encontrados 4 registros, por exemplo

 

  mysql_data_seek($resp, 2); // Posicionado o ponteiro no registro 2

 

  echo "Nome: " . $dados['NOME'];

  echo "<br>";

  echo "Cidade: " . $dados['CIDADE'];

  echo "<br>";

  echo "Fone: " . $dados['FONE'];

  echo "<br><br>";

Não deu erro... Mas também não funcionou! Mesmo que seja alterado o valor do ponteiro, que no meu exemplo é "2", é apresentado sempre o primeiro registro listado pela pesquisa retornada.

Alguém tem idéia do que possa estar acontecendo?

wbb

Link para o comentário
Compartilhar em outros sites

  • 0

$strsql = "Select * from tab1 LIMIT 0,1"; // Pega o primeiro registro.

$strsql = "Select * from tab1 LIMIT 1,1"; // Pega o segundo registro.

$strsql = "Select * from tab1 LIMIT 2,1"; // Pega o terceiro registro.

E para navevar basta colocar variaveis no limit, tipo:

LIMIT $inicia,$quantidade

$inicia for: 0 e quantidade for: 10 -> Vai exibir os dez primeiros registros.

$inicia for: 10 e quantidade for: 10 -> Vai exibir do 11º ao 20º registro.

Link para o comentário
Compartilhar em outros sites

  • 0

Até entendi Gladisson... perfeito.

Porém, vamos considerar aquele seu primeiro exemplo, da pesquisa pelo nome "joão". Imagine que você tenha na tabela, 7 registros cujo nome é "joão" e que os CPFs deles sejam diferentes (porém a pesquisa não usou o CPF como argumento. Usou apenas o nome para pesquisar). Agora imagine que por algum motivo qualquer, você deseje ir para o registro do terceiro "joão". Como você faz para avançar a este registro, ou retroceder dependendo da situação, se na pesquisa que você fez foram retornados os 7 registros de "joão" que existem? Você está no "joão" do primeiro registro e deseja ir para o joão do terceiro registro. Como fazer?

wbb

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,6k
×
×
  • Criar Novo...