Um relatório MySQL em formato HTML pode facilitar muito a exibição de resultados de consultas em uma página web. A solução pode poupar tempo precioso em um projeto de webdesign.
Neste artigo vou mostrar como isto pode ser feito da maneira mais eficiente para entregar código HTML pronto para ser usado em uma página estática. Devo advertir que, se você deseja criar scripts que entreguem páginas dinâmicas em HTML, há maneiras mais eficientes de se fazer isto — o que torna esta solução, aqui, inadequada para este tipo de demanda.
O MySQL pode produzir a saída no formato de tabelas HTML com o uso da opção -H
ou --html
(à sua escolha).
Veja, abaixo, a diferença ente o formato tabular normal no MySQL e o formato de tabelas HTML provido pelo MySQL.
mysql -e "SELECT * FROM cliente WHERE conta=0" caixa
+------------+------+------+ | nome | conta| id | +------------+------+------+ | Antonio |0 |10 | | Osvaldo |0 |8 | | Socrate |0 |0 | | Arthur |0 |1 | +------------+------+------+
mysql -H -e "SELECT * FROM cliente WHERE conta=0" caixa
<TABLE BORDER=1><TR><TH>nome</TH><TH>conta</TH><TH>id</TH></TR> <TR><TD>Antonio</TD><TD>0</TD><TD>10</TD></TR> <TR><TD>Osvaldo</TD><TD>0</TD><TD>8</TD></TR> <TR><TD>Socrates</TD><TD>0</TD><TD>0</TD></TR> <TR><TD>Arthur</TD><TD>0</TD><TD>1</TD></TR> </TABLE>
* Texto colorido para melhorar a legibilidade. O resultado no cliente MySQL é monocromático.
Você não pode obter saídas em HTML a partir dos resultados das queries obtidas com UPDATE
ou INSERT
, uma vez que não geram saída de resultados em tabelas.
Como obter a saída de resultados MySQL em XML
Com a variante -X
é possível resolver este problema. Veja:
mysql -X -e "SELECT * FROM cliente WHERE conta=0" caixa
<?xml version="1.0"?> <resultset statement="SELECT * FROM cliente WHERE conta=0"> <row> <thing>Antonio</thing> <legs>0</legs> <arms>10</arms> </row> <row> <thing>Osvaldo</thing> <legs>0</legs> <arms>8</arms> </row> <row> <thing>Socrates</thing> <legs>0</legs> <arms>0</arms> </row> <row> <thing>Arthur</thing> <legs>0</legs> <arms>1</arms> </row> </resultset>
* Texto colorido para melhorar a legibilidade. O resultado no cliente MySQL é monocromático.
Você pode usar tanto a opção -X
como --xml
— opte pelo que for mais adequado para você.