PHP é à quinta-feira – Apresentação de imagens
Criado por Pedro Pinto em 28 de Abril de 2011 | 22 comentários
Por Pedro Peixoto para o PPLWARE
Como o último artigo despertou bastante interesse, apesar do seu grau de simplicidade, vamos, esta semana, continuar na mesma linha e aprender a trabalhar com o elemento <img>. Neste artigo poderemos ver como fazer output de imagens nas páginas geradas em PHP, armazenando os seu endereços na base de dados.
Uma imagem tem dois atributos importantes:
- Src – Url da imagem
- Alt – Texto alternativo
São estes dois atributos que podemos armazenar numa tabela, e ao contrário do que muitos pensam, a imagem física não fica na própria base de dados mas sim no servidor, apenas o seu endereço é guardado.
Para este exercício vamos usar uma imagem chamada ‘pplware.png’.
Para apresentar a imagem através do PHP, podemos usar o seguinte código.
<?php $src='pplware.png'; $alt='Logotipo PPLWARE'; echo '<img src="' . $src . '" alt="' . $alt . '"/>'; ?>
Ao abrir esta página teremos o seguinte resultado:
A informação das variáveis $alt e $src poderiam ser introduzidas numa base de dados como a da imagem seguinte:
Agora vamos modificar o código:
<
?php //ligação DB mysql_connect('localhost','root','mysql'); mysql_select_db('PPLWARE'); //consulta $query="Select * from Galeria where ID=1"; $resultado=mysql_query($query); $linha=mysql_fetch_array($resultado); //output imagem $src=$linha['URL']; $alt=$linha['DESCRICAO']; echo '<img src="' . $src . '" alt="' . $alt . '"/>'; ?>
O resultado é exactamente o mesmo:
Posto isto, e visto que o script já está completamente dinâmico, podemos incluir um ciclo while e fazer uma mini galeria para todas as imagens da base de dados (não esquecer de retirar a cláusula where da query:
<?php mysql_connect('localhost','root','mysql'); mysql_select_db('PPLWARE'); $query="Select * from Galeria"; $resultado=mysql_query($query); while($linha=mysql_fetch_array($resultado)) { $src=$linha['URL']; $alt=$linha['DESCRICAO']; echo '<img src="' . $src . '" alt="' . $alt . '"/>'; } ?>
Falta agora adicionar à base de dados mais imagens e não esquecer de as colocar fisicamente no servidor, este processo também poderia ser feito através do PHP, mas “upload de ficheiros” é um tema para um próximo artigo.
Como o campo URL é um caminho para uma imagem, também podemos colocar um caminho da WEB, é indiferente:
E o resultado final: