Jump to content
markhosbh

Transformar Array em tabela

Recommended Posts

Prezados, boa tarde!

 

Estou tendo dificuldades para transformar um retorno WebService em uma tabela HTML.

A minha dificuldade está na seguinte condição, se fosse cabeçalho fixo bastava eu utilizar o foreach para percorrer o array e estava ok.

Porém, a quantidade de campos do array de retorno não é fixo, aí que se encontra minha dificuldade, como fazer para ler e imprimir o cabeçalho e o conteúdo da tabela, sendo que essas informações podem variar.

 

Exemplo:

 

Requisição: 

SELECT 
	A1_COD, A1_NOME, TIPO 
FROM USUARIO

 

Retorno:

[ {"A1_COD":"0093","A1_NOME":"JOAO","TIPO":"TITULAR"}, {"A1_COD":"0016","A1_NOME":"ABELARDO","TIPO":"TITULAR"}, {"A1_COD":"8586","A1_NOME":"ADRIANA","TIPO":"TITULAR"} ]

 

Array:

 Array
(
    [0] => Array
        (
            [A1_COD] => 0093
            [A1_NOME] => JOAO
            [TIPO] => TITULAR
        )

    [1] => Array
        (
            [A1_COD] => 0016
            [A1_NOME] => ABELARDO
            [TIPO] => TITULAR
        )

    [2] => Array
        (
            [A1_COD] => 8586
            [A1_NOME] => ADRIANA
            [TIPO] => TITULAR
        )

)

Quero que seja impresso em uma tabela html

 

A1_COD	A1_NOME		TIPO
0093	JOAO		TITULAR
0016	ABELARDO	TITULAR
8586	ADRIANA		TITULAR

 

Mas como informado o cabeçalho poderia variar, sendo a requisição por exemplo ser:

 

SELECT * FROM USUARIO

 

Desde então agradeço.

Share this post


Link to post
Share on other sites

Cara não sei exatamente se compreendi seu problema, então vou postar um código aqui se funcionar você usa se não descarta. 

<?php
print'<fieldset><legend>Resultados</legend>';
print "<table  border=1 bordercolor=black><tr><td> CÓDIGO </td><td>NOME</td><td>TIPO</td></tr>";   

$select = "A1_COD, A1_NOME, TIPO FROM USUARIO";
$busca = mysqli_query($select, $conexao);
while ($dados= mysqli_fetch_array($busca)) {

$codigo = $dados['A1_COD'];
$nome = $dados['A1_NOME'];
$tipo = $dados ['TIPO'];
 
 print "<tr><td>".$codigo."</td><td>".$nome."</td><td>".$tipo."</td></tr>";

}
print'</table>';
print'</fieldset>';


?>

 

Share this post


Link to post
Share on other sites

@MAKAVELIQUE, ai que está, desta forma quando sei quantas colunas serão retornadas, eu também conseguia responder, no caso eu preciso de um código que faça a leitura do retorno como se fosse por exemplo "SELECT * FROM DUAL" onde neste caso não tem como saber quantas colunas serão retornadas, na solução que você retornou você sabia que as colunas eram A1_COD, A1_NOME, TIPO.

Ficou mais clara a explicação?

Share this post


Link to post
Share on other sites

Acredito que sim caro markhosbh,  pode-se resolver seu problema de várias maneiras e cada programador irá resolver de uma forma diferente, a solução que talvez  usaria é:  poxa meus campos na tabela não são infinitos e sei quantos são, poderia criar ali condições com array para o select de acordo com o que já sei, sacou a parada? 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By calinthians
      Olá pessoal, estou criando um sistema de portfólios e fiz tudo funcionar sem PHP, quando transformei o sistema em dinâmico não está mais abrindo o modal de cada portfólio qd clica nele, sendo que eu inspecionei a página e está pegando os valores corretos na ID, só não está abrindo mesmo, e outro modal sem o PHP continua abrindo normalmente.
       
       
      <section id="portfolio"> <div class="container"> <div class="text-center"> <h3 class="section-heading">Portfólio</h3> </div>   <ul id="port-group"> <?php while($dado = mysqli_fetch_assoc($consulta) ) { ?> <li> <div class="portfolio-item"> <a href="#portmodal<?php echo $dado['id']; ?>" class="portfolio-link" data-toggle="modal"> <div class="portfolio-hover"> <div class="portfolio-hover-content pagport"> <i class="fa fa-plus fa-3x"></i> </div> </div> <div class="portfolio-responsive idportimg1"> <style>.idportimg1 {background-image: url("img/bg.png")}</style> </div> </a>   <div class="portfolio-caption"> <h5><?php echo $dado['titulo']; ?></h5> <p class="text-muted"><?php echo $dado['subtitulo']; ?></p> </div> </div> </li>   <!-- Portfolio Modal --> <div class="portfolio-modal modal fade" id="portmodal<?php echo $dado['id']; ?>>" tabindex="-1" role="dialog" aria-hidden="true"> <div class="modal-dialog"> <div class="modal-content"> <div class="close-modal" data-dismiss="modal"> <div class="lr"> <div class="rl"> </div> </div> </div> <div class="container"> <div class="row"> <div class="col-lg-2"> </div> <div class="col-lg-8"> <div class="modal-body"> <h3><?php echo $dado['titulo']; ?></h3> <img class="img-responsive img-centered" src="img/portfolio/site1.jpg" alt=""> <p><?php echo $dado['descricao']; ?></p> <img class="img-responsive img-centered" src="img/portfolio/site11.jpg" alt=""> <ul class="list-inline"> <li><?php echo $dado['datax']; ?></li> <li><?php echo $dado['cliente']; ?></li> <li><?php echo $dado['categoria']; ?></li> </ul> <button type="button" class="btn-close" data-dismiss="modal"><i class="fa fa-times"></i> Fechar</button> </div> </div> <div class="col-lg-2"> </div> </div> </div> </div> </div> </div> <?php } ?> </ul> </div> </section>
    • By NeumarFreire
      Caros amigos. Sou novo neste forum e tenho um problema de código na página resposta. Apesar dos indeces estarem de acordo com os "name" do formulários o erro se mantém.
      Troquei o Method no campo emailId para GET e o erro desapareceu mas nos outros campos não. Vejam o código EM NEGRITO abaixo e se puderem ajudar...
      <?php include_once 'restrito_all.php'; ?>
      <?php include_once 'validar_user.php'; ?>
      <?php include_once 'header.php'; ?>
      <?php
      date_default_timezone_set('America/Sao_Paulo');
      $data= date('d/m/Y');
      $hora= date('H:i').' H';
      ?>
            
            <div id="local">
                  <div class="caminho">Onde estou: NFL & Associados &raquo; Painel de Controle &raquo; Admin &raquo; Visualizar/Responder</div>
                  <div class="welcome">Olá, <?php echo $clienteNome;?> | <?php  echo $data .' às '.$hora ?> | <a href="deslogar.php">Sair</a></div>
            </div>

             <div id="content">
           
      <?php include_once 'menu.php'; ?>
         
                   <div id="content_conteudo">
                   
      <?php include_once 'carregando.php'; ?>

      <?php
      $emailAdmin ='contato@nflweb.com.br';
      $emailAssunto = 'CONTATO Portal Imobiliário NFL & Associados';
      $emailStatus = 'completo';
      $emailResposta = date ('Y-m-d H:i:s');
      $headers = "From: $emailAdmin\n";
      $headers .= "MIME-Version: 1.0\n";
      $headers .= "content-type:text/html; charset=\"utf-8\"/n/n";
      $emailId = $_GET['emailId'];
      $emailTxt = $_POST['mensagem'];
      $emailEmail = $_POST['emailEmail'];
      $recebidoEm = $_POST['emailData'];
      $mensagemEm = $_POST['emailMensagem'];
      $sql_enviaAdmin = 'UPDATE imobi_mailadmin SET = emailStatus = :emailStatus, emailResposta = :emailResposta, emailTxt = :emailTxt WHERE emailId = :emailId ';
      try{
          $query_enviaAdmin = $conecta->prepare($sql_enviaAdmin);
          $query_enviaAdmin->bindValue(':emailStatus',$emailStatus,PDO::PARAM_STR);
          $query_enviaAdmin->bindValue(':emailResposta',$emailResposta,PDO::PARAM_STR);
          $query_enviaAdmin->bindValue(':emailTxt',$emailTxt,PDO::PARAM_STR);
          $query_enviaAdmin->bindValue(':emailId',$emailId,PDO::PARAM_STR);
          $query_enviaAdmin->execute();
          echo '<div class="ok">Mensagem enviada com sucesso!</div><br /> ';
          
      }catch(PDOexception $error_adminEmail){
          echo 'Erro ao atualizar e-mail';
      }
      ?>
                   
                   <div class="inbox">
                   
      <table width="100%" border="0" cellspacing="2" cellpadding="0">
        <tr class="cabecalho">
          <td align="center">DATA</td>
          <td align="center">NOME</td>
          <td align="center">E-MAIL</td>
          <td align="center">EXECUTAR:</td>
        </tr>
       
       <?php
         $emailId =$_GET ['emailId'];
         $sql_inboxAdmin = 'SELECT * FROM imobi_mailadmin WHERE emailId = :emailId ';
      try{
          
          $query_inboxAdmin = $conecta->prepare($sql_inboxAdmin);
          $query_inboxAdmin->bindValue(':emailId', $emailId,PDO::PARAM_STR);
          $query_inboxAdmin->execute();
          
          $resultado_inboxAdmin = $query_inboxAdmin->fetchAll(PDO::FETCH_ASSOC);
          
          }catch(PDOexception $error_inboxAdmin){
              echo 'Erro ao selecionar pendentes.';
          }
          $i=0;
          foreach($resultado_inboxAdmin as $res_inboxAdmin){
              
              $emailId = $res_inboxAdmin['emailId'];
              $emailNome = $res_inboxAdmin ['emailNome'];
              $emailMensagem = $res_inboxAdmin ['emailMensagem'];
              $emailEmail = $res_inboxAdmin ['emailEmail'];
              $emailData = $res_inboxAdmin ['emailData'];
              $emailStatus = $res_inboxAdmin ['emailStatus'];
              $emailResposta = $res_inboxAdmin ['emailResposta'];
              $emailTxt = $res_inboxAdmin ['emailTxt'];
              $cor = 'bgcolor="#EBE9FE"';
      ?>  
       
        <tr <?php echo $cor; ?>>
          <td align="center"><?php echo date('d/m/Y - H:i',strtotime($emailData));?>h</td>
          <td align="left"><?php echo $emailNome;?></td>
          <td align="center"><?php echo $emailEmail;?></td>
          <td align="center" ><a href="painel.php">Voltar</a></td>
        </tr>
       
        <tr <?php echo $cor; ?>>
          <td align="center" class="cabecalho">MENSAGEM:</td>
          <td align="left" colspan="3"><?php echo $emailMensagem;?></td>
        </tr>
       
       
       <?php
        }  
       
      ?>
       
      </table>
             
                </div> <!--FECHA CLASS INBOX --> <br />
      <br />
           <form name="responderEmail" action="" enctype="multipart/form-data" method="POST">
               <label>
                   <span>Escreva a resposta: </span>
                  <textarea rows="8" name="mensagem" cols="108"></textarea>
               </label>
               <input type="hidden" name = "emailId" value = "<?php echo $emailId;?>" />
               <input type="hidden" name = "emailEmail"  value = "<?php echo $emailEmail;?>" />
               <input type="hidden" name = "emailData"  value = "<?php echo $emailData;?>" />
               <input type="hidden" name = "emailMensagem"  value = "<?php echo $emailMensagem;?>" />
                         
               <input type="submit" name = "executar" id="executar" value="Enviar resposta" />
           </form>  
                    
               </div> <!--FECHA CONTENT CONTEUDO-->
               
           </div> <!--CONTENT-->

      <?php include_once 'footer.php'; ?>

    • By daniramon
      Olá pessoal, tudo bem?
       
      Sou novato em PHP, e preciso criar a seguinte função.
       
      Meu problema: 
      - Recebo os seguintes parâmetros: (total de alunos & número de pessoas por grupo).
      - Preciso definir um número ideal de pessoas por grupo, sem deixar nenhum grupo desfalcado. 
      - Mínimo de 4 pessoas por grupo;
      <?php $totalUsers = 50; $usersPerGroup = 6; $minPerGroup = 4; ?>  
      $var = $totalUsers / $usersPerGroup;
       
      Na simulação acima, terei 7 grupos com 6 pessoas, e um grupo com 1,4 pessoas..rs.
       
      Gostaria, que a função me retornasse, em um mundo ideal:
       
      7 grupos com 6 pessoas = 42 pessoas
       
       2  grupos com 4 pessoas = 8 pessoas
      <?php return $array = [ 7 => 6, 2 => 4]; ?>  
      Alguém poderia me ajudar na criação desta função, please...
    • By Carcleo
      Parece brincadeira, mas estou fazem 3 dias tentando instalar a cURL e não consigo
      Windows 10 Pro Apache 2.4 Php 7.3.4 MySQL 8.0.15.0 Tentativas:
      1) libeay32.dll, msvcr71.dll, ssleay32.dll e php_curl.dll coladas na pasta system32 e adicionadas ao PATH do Windows 2) Baixei a biblioteca cURL do site https://curl.haxx.se/, cliquei em curl.exe e nada acontece. 3) ;extension=CURL e ;extension=php_curl.dll descomentadas no php.ini (Embora a linha ;extension=php_curl.dll não exista nessa versão do PHP eu inserí ela na lista) 4) Confirmado de que o php.ini é o correto.  Agora só faltam 2 tentativas
       
      A) Apelar para a fé.
      B) Instalar Apache e PHP antigos pois lembro-me que usei em um projeto fazem uns anos e funcionava de boa.
           Mas não gostara de voltar no tempo.
       
      Claro que essas 2 foram só para descontrair!
       
      Alguém me ajuda? Ode estou errando?
    • By terra
      Olá,
       
      Preciso pegar o valor desse select
       
       
       aqui nessa query
       
       
      Agradeço qualquer ajuda
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.