Como usar tabelas HTML5 para saída SQL
A unidade básica de estrutura no SQL é chamado de mesa porque normalmente é exibido em um formato tabular. HTML5 também tem uma estrutura de tabela, o que é ideal para enviar dados SQL. ContactTable.php, exibe o contato informações dentro de uma tabela HTML.
As tabelas são uma forma muito comum de resultados SQL saída. Há uma grande diferença entre a saída de mesa e a versão básica de uma tabela. Em uma tabela, você tem uma linha separada que contém nomes de campo. Aqui está o código:
contact.php ? Lt; phptry {$ con = new PDO ( 'mysql: host = localhost-dbname = dbName "," user "," pwd ") - $ con-> setAttribute (PDO :: ATTR_ERRMODE, PDO :: ERRMODE_EXCEPTION) - $ consulta = "SELECT * FROM contato" - // primeira passagem só fica a namesprint coluna "
$ field | N "-} // foreachprint fim"
---|
$ value | N "-} // campo final loopprint"
Você pode estar confuso que uma tabela está a ser utilizado aqui. As tabelas não são maus: Eles simplesmente não são projetados para ser um mecanismo de layout de página. Tabelas, no entanto, estamos projetado para exibir dados tabulares, e o resultado de uma consulta de dados é praticamente a definição de dados tabulares. Você pode (e deve) ainda usam CSS para obter detalhes específicos de layout da tabela. As mesas são bem quando usado para apresentar dados.
Este código é ainda muito semelhante ao programa de base contact.php. Extrai dados da base de dados exactamente da mesma forma. A principal diferença é a forma como nomes de campo são tratados. Os nomes de campo vai em cabeçalhos de tabela, e apenas os valores são impressos em cada linha. Para fazer este trabalho, siga estes passos:
Criar uma conexão normal MySQL.
Comece com a conexão padrão. Não se preocupe com a formatação até que você esteja razoavelmente certo de que você pode ler dados a partir do banco de dados.
$ Con = new PDO ( 'mysql: host = localhost-dbname = dbName "," user "," pwd ") - $ con-> setAttribute (PDO :: ATTR_ERRMODE, PDO :: ERRMODE_EXCEPTION) -
Determinar a sua consulta.
Criar uma consulta que irá produzir uma tabela, visão ou resultado de pesquisa. Armazená-lo em uma variável para que você possa usá-lo. (Você vai usar a mesma consulta duas vezes neste exercício.)
$ Consulta = "SELECT * FROM contato" -
imprimir o mesa tag antes de extrair nenhum resultado.
Todos os dados da consulta será exibido dentro da mesa, para imprimir o mesa tag antes de começar a imprimir qualquer coisa que deve ir dentro da tabela.
impressão "
N "-
Fazer uma primeira passagem para extrair nomes de campo.
Você está realmente indo para consultar o banco de dados duas vezes. Pela primeira vez, você quer simplesmente os nomes de campo, o que você vai usar para construir os cabeçalhos da tabela, por isso só precisa de uma linha.
$ Result = $ con-> query ($ query) - // retorna apenas a primeira linha (que só precisa de nomes de campo) $ row = $ result-> fetch (PDO :: FETCH_ASSOC) -
o buscar Método puxa o próximo registro disponível a partir do $ result variável. Você quer que os dados de registro em formato matriz associativa, por isso, passar a PDO :: FETCH_ASSOC constante para indicar isso.
Imprimir os nomes de campo como cabeçalhos de tabela.
Agora que você tem um único registro, percorrer esse registro como uma matriz associativa e usar o $ field valores para imprimir nomes de campo.
impressão "
N "($ row quanto $ field => $ value) -foreach {print" N "-$ field N "-} // foreachprint fim"Faça uma segunda consulta.
Agora execute novamente a consulta com o $ Con-> query () método. Desta vez, você está fazendo uma consulta normal, com vários resultados. Não se esqueça de definir o modo de busca de uma matriz associativa.
// Segunda consulta obtém os dados $ data = $ con-> query ($ query) - $ data-> setFetchMode (PDO :: FETCH_ASSOC) -
Use loops aninhados para imprimir elementos de dados.
Use o truque nested-loops de ordinária para imprimir todos os elementos de dados com cada registro ocupando uma linha da tabela HTML.
foreach ($ dados como $ row) {print "
N "($ row quanto $ name => $ value) -foreach {print" N "-} // faz um loop registro final$ value N "-} // campo final loopprint"