Olá! Saturday, 25 de March de 2017.



Dicas CódigoFonte.net
Thursday, 08 de July de 2004

Pegando dados de um banco de dados MySQL a partir do id ou código

Pessoal, andei em alguns fóruns sobre PHP e vi que algumas pessoas tinham dúvidas em como pegar dados de um banco de dados MySQL e exibir numa página PHP somente fornecendo o ID(ou qualquer outro campo)...

Nesse exemplo vamos ver uma tabela com os campos NOME e ID, no qual queremos exibir apenas o nome de acordo com seu ID

Pois bem, já sabemos como fazer para pegar dados:

  1. //selecionando dados da tabela
  2. $sql = "SELECT * FROM tabela"
  3. $query = mysql_query($sql);
  4. while($sql = mysql_fetch_array($query)){
  5. $id = $sql["id"];
  6. $nome = $sql["nome"];
  7. //onde $nome é a variavel que rerpresenta a coluna "nome" nessa
  8. //mesma tabela.
  9. echo "$nome"; //exibindo o que foi achado na coluna "nome".
  10. }
  11.  


Ate aí tudo bem.. agora vamos ver a coluna ID. Para exibir os resultados temos o arquivo exibir.php(onde se localiza o código acima). Vamos supor que há uma empresa... e nessa empresa cada funcionário deve dar seu nome até o dia "tal". Temos 123 nomes registrados. Se usarmos apenas o código acima, o arquivo exibir.php retornará TODOS os 123 nomes registrados. Para que isso não aconteça, ou seja, nós queremos exibir apenas um de cada vez, faremos o seguinte:

PAGINA exibir.php:
  1.  
  2. //selecionando dados da tabela
  3. $sql = "SELECT * FROM tabela";
  4. $query = mysql_query($sql);
  5. while($sql = mysql_fetch_array($query)){
  6. $id = $sql["id"];
  7. $nome = $sql["nome"];
  8. echo "<a href=nome.php?id=$id>$nome</a>";}
  9.  

Perceberam que uma página entrou no meio da história, a página nome.php, que será usada para exibir os resultados de acordo com id... Sendo assim, vamos ao código, que será o mesmo da exibir.php só com algumas alterações:
  1.  
  2. $sql = "SELECT * FROM tabela WHERE id=$id";
  3. $query = mysql_query($sql);
  4. while($sql = mysql_fetch_array($query)){
  5. $nome = $sql["nome"];
  6. echo "Resultados para o ID $idNome:$nome";
  7. }


hum, vejamos o que temos na primeira linha:
  1. $sql = "SELECT * FROM tabela WHERE id=$id";

ou seja, [i]SELECIONAR tudo DA tabela ONDE id é igual a varialvel $id.[/id]

Concluindo nosso artigo: Ele só retornará nomes onde o ID seja "tal", e se você colocar um ID diferente para todos, ele só retornará 1 registro(nesse caso, 1 nome, e não todos os 123.)

Ex:
id: 1
nome: Ze

id: 2
nome: Creide

nome.php?id=1 : ele retornará "Ze";
nome.php?id=2 : ele retornará "Creide";

Espero que ajude a quem tiver dúvidas.
qualquer coisa me enviem um email.

Comentários do artigo [Novo comentário]

tayuan - 30 de September de 2010 - 17:44
Retorna esse erro:

Parse error: parse error in c:\windows\serv-n\www\tt.php on line

linha 4: $query = mysql_query($sql);

Devo alterar alguma coisa?
geraldo - 06 de May de 2014 - 20:14
ola, gostaria de saber a solusão , mesmo fazendo o codigo serto ele sempre da esse erro :
Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in D:wampwwwwustensandincludeposte.php on line 6
paulo robson nobre da silva - 07 de May de 2014 - 07:46
coloque isto no final da query para debugar o erro
or die(mysql_error());

icaroOzika - 29 de May de 2014 - 13:11
cara me ajuda eu queru fazer um top 10 mais eu puxo os dados é só aparece varios com mesmo nome,
queru pegar do primeiro até o 10 primeros dados do banco

<?php







$sql = "SELECT * FROM ma_usuario ORDER BY `usr_id`";
$rsdj = mysql_query($sql);

while ($ln = mysql_fetch_array($rsdj)){

$id = $ln['usr_id'];
$nome = $ln['usr_nome'];
$senha = $ln['usr_senha'];
$pin = $ln['usr_pin'];

}










?>
<?php echo $pin ?>
</br>

</br>
<?php echo $nome ?>
</br>
<?php echo $nome ?>
</br>
<?php echo $nome ?>
</br>
Para adicionar um comentário você deve efetuar o login


Gostou do CódigoFonte.net? Quer indicar a um amigo?
Preencha os campos a seguir.
Seu Nome:
Seu E-mail:
E-mail de seu Amigo:


CodigoFonte.net » CodigoFonte.eti.br » Meu Mural » Competiva - Criação de Sites » Todos os Direitos Reservados © 2002/2010