domingo, 28 de junho de 2015

Busca Simples Com PHP, PDO e Mysql Utilizando “links”



Já postamos um tutorial de como fazer uma busca simples usando um formulário http://trocadicas.blogspot.com.br/2015/04/pagina-de-busca-simples-com-pdo-e-mysql.html. Agora veremos como fazer uma aplicação semelhante utilizando “hiperlinks” (estas aplicações são conhecidas também como “páginas de detalhes”). Vamos usar o mesmo código para a conexão e a mesma tabela de “amigos” do post anterior.


Etapa I – página de listagem geral 

1.      O primeiro passo é criar os “links”. Use o código a seguir para consultar o banco de dados e recuperar os ids e nomes dos amigos:
<?php
// aqui a conexao

$stmt = $con->prepare("select id, nome from amigos");
$stmt->execute();
while($reg = $stmt->fetch(PDO::FETCH_OBJ))
{
echo $reg->id." - ";
echo $reg->nome."<br />";
}
?>

2.      Teste
no navegador; já deverá surgir uma lista assim:

3.      Agora vamos criar os “hiperlinks” (neste tuto, vamos usar os nomes), inserindo código HTML. Para isso, troque a linha:
echo $reg->nome."<br />";

por essa:
echo"<a href='detalhes-amigos.php?id=$reg->id'>$reg->nome</a><br/ >";
4.      Salve e atualize no navegador, note que ao pousar o mouse sobre um nome, já deverá aparecer seu “id” correspondente:


Etapa II – a página de detalhes

5.     
Agora vamos criar a página que vai exibir os detalhes do amigo selecionado; é bem simples. Começamos, como sempre, com os dados da conexão e, a seguir, declaramos uma variável que recebe o “id” passado pela página anterior:
<?php
// aqui a conexao
$id=$_GET['id'];

8. Agora é só executar a pesquisa no banco de dados, lembrando de definir a variável, na linha de baixo:
$stmt = $con->prepare("select * from amigos where id=?");
$stmt->bindParam(1, $id);
6.      Acrescente as linhas a seguir para exibir os resultados:
$stmt->execute();
while($reg = $stmt->fetch(PDO::FETCH_OBJ))
{
echo $reg->id." - ";
echo $reg->nome." - ";
echo $reg->email."<br />";
}
?>
7.      Salve e teste no navegador; sua busca por “hiperlinks” já deverá estar funcionando corretamente: