Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Vanessa Olimpio

LOOP dentro da tabela PHP

Recommended Posts

*************LOOP dentro da tabela PHP*********************

 

Estou tentando criar um relatório de notas de alunos utilizando PHP, o fato é que criei uma tabela para que listasse as notas vertical dentro de um loop, porém pra cada aluno é gerado uma tabela, não estou conseguindo tabular o resultado lado a lado . Preciso também que a cada vez que mude o instrutor repita o cabeçalho, ou seja a cada 8 linhas, repita o cabeçalho novamente...


      

Segue o código completo:

    <?php include_once "con_odbc.php" ?>
    <div class="hidden-print"><b style=color:#ff0000><h4>Selecione o curso</h4>
    </b>   <form method="get" >
    <select name="data" id="data">

    <?php            
            
    $tal=0;
    $total =0;
    $res=0;
    $x=0;

    $sqlquery=("SELECT apde.CadCrs.idCadCrs,
    apde.CadCrs.Abrev as Data,
    apde.CadCrs.Per,
    apde.CadCrs.DtIni,
    apde.CadCrs.DtFin,
    apde.CadCrs.Flag
    FROM apde.CadCrs");
    $res = odbc_exec($connect, $sqlquery); 

    while ($dados =odbc_fetch_array($res)) {
    echo("<option value='".$dados['Data']."'>".$dados['Data']."</option>");
    }
    ?>
    </select>
        </tr>
        <tr>
       </tr>
    </table>
    <td> <input type="submit" name="OK" value="Mostrar"><td><a class="btn btn-
    default ewExportLink ewPrint" onclick="window.print();" title=""  >
    <span  class="icon-print ewIcon"></a></div><br>
    <bgcolor='#FFFFCC'><div class="hidden-print"><a href="#abaixo" name="topo">
    <input type='button'   value="IR PARA O FIM"></a></div>

    <div class="modal-content" width="600px">
    <div class="modal-content" >
    <div class="modal-header">
    <span id=layer1 class=a1></span>
    <span id=layer1 class=a1></span>
    </td>
    </tr>
    <tr>

    <br>


     </form>


     <br>

     <table width="950" border="0" align="center" cellpadding="2" cellspacing="2">
     <thead>
     <TR bgcolor="<?php echo ($ac_sw1++%2==0)?"#E4E4E4":"#FFFFFF"; ?>" onmouseout="this.style.backgroundColor=''" onmouseover="this.style.backgroundColor=''">
      <TD COLSPAN="40"><CENTER><b><font color="red" face="Times New Roman">Relatório de Notas </font> </b></CENTER></TD>
     </TR>
    <tr bgcolor="<?php echo ($ac_sw1++%2==0)?"#E4E4E4":"#FFFFFF"; ?>" onmouseout="this.style.backgroundColor=''" onmouseover="this.style.backgroundColor=''">
    <td>Id</td>
    <td>Curso</td>
    <td>Instrutor</td>
    <td>Critério</td>
    <td>1</td>
    <td>2</td>
    <td>3</td>
    <td>4</td>
    <td>5</td>
    <td>6</td>
    <td>7</td>
    <td>8</td>
    <td>9</td>
    <td>10</td>
    <td>11</td>
    <td>12</td>
    <td>13</td>
    <td>14</td>
    <td>15</td>
    <td>16</td>
    <td>17</td>
    <td>18</td>
    <td>19</td>
    <td>20</td>
    <td>21</td>
    <td>22</td>
    <td>23</td>
    <td>24</td>
    <td>25</td>
    <td>26</td>
    <td>27</td>
    <td>28</td>
    <td>29</td>
    <td>30</td>
    <td>31</td>
    <td>32</td>
    <td>33</td>
    <td>34</td>
    <td>35</td>
     <td>36</td>
    

     </tr></thead><tbody>

     <?php

    if(isset($_GET["OK"])){
     $Data= $_GET["data"];

    $contador = 0;

     $sqlquery=("SELECT Abrev, NomGue, TipAval, Aluno_1, Aluno_2, Aluno_3, Aluno_4, Aluno_5, Aluno_6, Aluno_7, Aluno_8, Aluno_9, Aluno_10, Aluno_11, Aluno_12, Aluno_13, Aluno_14, Aluno_15, Aluno_16, Aluno_17, Aluno_18, Aluno_19, Aluno_20, Aluno_21, Aluno_22, Aluno_23, Aluno_24, Aluno_25, Aluno_26, Aluno_27, Aluno_28, Aluno_29, Aluno_30, Aluno_31, Aluno_32, Aluno_33, Aluno_34, Aluno_35, Aluno_36 FROM APDE.apde.V_AvInstru  where Abrev = '$Data'  order by NomGue asc");
    $res = odbc_exec($connect, $sqlquery);

    while ($dados =odbc_fetch_array($res) )
    {

      if($contador == 8)
     {
    ?></tr>
    <br>
    <br>
    <br>
    <br>

      <table border="1" align="center" cellpadding="2" cellspacing="2">
        <tr bgcolor="<?php echo ($ac_sw1++%2==0)?"#E4E4E4":"#FFFFFF"; ?>" 
    onmouseout="this.style.backgroundColor=''" 
    onmouseover="this.style.backgroundColor=''">
            <td width="35" height="22" align="center">ID</td>

            <td width="500" align="center">Curso</td>
            
            <td width="500" align="center">
               Instrutor</td>
                   
                   
            <td width="400">Critério
            </td>
     <td  width="50">1</td>
     <td  width="50">2</td>
     <td width="50">3</td>
     <td width="50">4</td>
     <td width="50">5</td>
     <td width="50">6</td>
     <td width="50">7</td>
     <td width="50">8</td>
     <td width="50">9</td>
    <td width="50">10</td>
    <td width="50">11</td>
    <td width="50">12</td>
    <td width="50">13</td>
    <td width="50">14</td>
    <td width="50">15</td>
    <td width="50">16</td>
    <td width="50">17</td>
    <td width="50">18</td>
    <td width="50">19</td>
    <td width="50">20</td>
    <td width="50">21</td>
    <td width="50">22</td>
    <td width="50">23</td>
    <td width="50">24</td>
    <td width="50">25</td>
    <td width="50">26</td>
    <td width="50">27</td>
    <td width="50">28</td>
    <td width="50">29</td>
    <td width="50">30</td>
    <td width="50">31</td>
    <td width="50">32</td>
    <td width="50">33</td>
    <td width="50">34</td>
    <td width="50">35</td>
    <td width="50">36</td>
    

     </tr></thead><tr>

    <?php    
        $contador = 0;
    }


   
        <tr bgcolor="<?php echo ($ac_sw1++%2==0)?"#E4E4E4":"#FFFFFF"; ?>" onmouseout="this.style.backgroundColor=''" onmouseover="this.style.backgroundColor=''">
            <td width="35" height="22" align="center"><?php echo $contador; ?></td>

            <td width="500" align="center"><?php echo $dados['Abrev']; ?></td>
            
            <td width="133" align="center">
               <?php echo $dados['NomGue']; ?></td>
                    
            <td width="400"><?php echo $dados['TipAval']; ?>
            </td>
            
            <td width="50"><?php echo $dados['Aluno_1']; ?></td>        
            <td width="50"><?php echo $dados['Aluno_2']; ?></td>
            <td width="50"><?php echo $dados['Aluno_3']; ?></td>
            <td width="50"><?php echo $dados['Aluno_4']; ?></td>
            <td width="50"><?php echo $dados['Aluno_5']; ?></td>
            <td width="50"><?php echo $dados['Aluno_6']; ?></td>
            <td width="50"><?php echo $dados['Aluno_7']; ?></td>
            <td width="50"><?php echo $dados['Aluno_8']; ?></td>
            <td width="50"><?php echo $dados['Aluno_9']; ?></td>
            <td width="50"><?php echo $dados['Aluno_10']; ?></td>
            <td width="50"><?php echo $dados['Aluno_11']; ?></td>
            <td width="50"><?php echo $dados['Aluno_12']; ?></td>
            <td width="50"><?php echo $dados['Aluno_13']; ?></td>
            <td width="50"><?php echo $dados['Aluno_14']; ?></td>
            <td width="50"><?php echo $dados['Aluno_15']; ?></td>
            <td width="50"><?php echo $dados['Aluno_16']; ?></td>
            <td width="50"><?php echo $dados['Aluno_17']; ?></td>
            <td width="50"><?php echo $dados['Aluno_18']; ?></td>
            <td width="50"><?php echo $dados['Aluno_19']; ?></td>
            <td width="50"><?php echo $dados['Aluno_20']; ?></td>
            <td width="50"><?php echo $dados['Aluno_21']; ?></td>
            <td width="50"><?php echo $dados['Aluno_22']; ?></td>
            <td width="50"><?php echo $dados['Aluno_23']; ?></td>
            <td width="50"><?php echo $dados['Aluno_24']; ?></td>
            <td width="50"><?php echo $dados['Aluno_25']; ?></td>
            <td width="50"><?php echo $dados['Aluno_26']; ?></td>
            <td width="50"><?php echo $dados['Aluno_27']; ?></td>
            <td width="50"><?php echo $dados['Aluno_28']; ?></td>
            <td width="50"><?php echo $dados['Aluno_29']; ?></td>
            <td width="50"><?php echo $dados['Aluno_30']; ?></td>
            <td width="50"><?php echo $dados['Aluno_31']; ?></td>
            <td width="50"><?php echo $dados['Aluno_32']; ?></td>
            <td width="50"><?php echo $dados['Aluno_33']; ?></td>
            <td width="50"><?php echo $dados['Aluno_34']; ?></td>
            <td width="50"><?php echo $dados['Aluno_35']; ?></td>
            <td width="50"><?php echo $dados['Aluno_36']; ?></td>

            
            
            
            
            
            
        </tr>
   

    <?php
     $contador++;
    }} 
    ?>
    </table>  


 

Compartilhar este post


Link para o post
Compartilhar em outros sites

O primeiro passo é criar a tabela do jeito que você quer na "mão", sem utilizar o PHP, com o básico de informações. A partir disso, você começa a substituir pela repetição do PHP.

 

É difícil para nós explicarmos como você deve fazer a repetição se não sabemos como você quer que a tabela fique.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Certo vou tentar ser um pouco mais clara, preciso tabular a nota dos alunos em colunas, o problema é que ele cria uma nova tabela para cada aluna , ou seja se o professor tiver 30 avaliações de 30 alunos diferentes o resultado trara 30 tabelas ...Enviei uma foto para ficar mais claro o entendimento.

 

Capturar.PNG

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você conseguiu montar o HTML da tabela (sem loop) do jeito que ela deve ser exibida? Se sim, poste-o aqui.

Compartilhar este post


Link para o post
Compartilhar em outros sites
6 horas atrás, Gabriel Heming disse:

O primeiro passo é criar a tabela do jeito que você quer na "mão", sem utilizar o PHP, com o básico de informações. A partir disso, você começa a substituir pela repetição do PHP.

 

É difícil para nós explicarmos como você deve fazer a repetição se não sabemos como você quer que a tabela fique.

 

 

Obrigada pelo empenho!

Segue o código em HTML sem os loops ;

 

 

<html>
<head>
<title>Relatório de Notas</title>
</head>
<body>

<table width="950" border="0" align="center" cellpadding="2" cellspacing="2">
<thead>
<TR bgcolor="<?php echo ($ac_sw1++%2==0)?"#E4E4E4":"#FFFFFF"; ?>" onmouseout="this.style.backgroundColor=''" onmouseover="this.style.backgroundColor=''">
	<TD COLSPAN="40"><CENTER><b><font color="red" face="Times New Roman">Relatório de Notas </font> </b></CENTER></TD>
	</TR>
	<tr bgcolor="<?php echo ($ac_sw1++%2==0)?"#E4E4E4":"#FFFFFF"; ?>" onmouseout="this.style.backgroundColor=''" onmouseover="this.style.backgroundColor=''">

            <td width="35" height="22" align="center">ID</td>

            <td width="500" align="center">Curso</td>
			
            <td width="500" align="center">
               Instrutor</td>
                   
				   
            <td width="400">Critério
			</td>
	<td  width="50">1</td>
	<td  width="50">2</td>
	<td width="50">3</td>
	<td width="50">4</td>
	<td width="50">5</td>
	<td width="50">6</td>
	<td width="50">7</td>
	<td width="50">8</td>
	<td width="50">9</td>
	<td width="50">10</td>
	<td width="50">11</td>
	<td width="50">12</td>
	<td width="50">13</td>
	<td width="50">14</td>
	<td width="50">15</td>
	<td width="50">16</td>
	<td width="50">17</td>
	<td width="50">18</td>
	<td width="50">19</td>
	<td width="50">20</td>
	<td width="50">21</td>
	<td width="50">22</td>
	<td width="50">23</td>
	<td width="50">24</td>
	<td width="50">25</td>
	<td width="50">26</td>
	<td width="50">27</td>
	<td width="50">28</td>
	<td width="50">29</td>
	<td width="50">30</td>
	<td width="50">31</td>
	<td width="50">32</td>
	<td width="50">33</td>
	<td width="50">34</td>
	<td width="50">35</td>
	<td width="50">36</td>
	

	</tr></thead><tr>


   
        <tr bgcolor="<?php echo ($ac_sw1++%2==0)?"#E4E4E4":"#FFFFFF"; ?>" onmouseout="this.style.backgroundColor=''" onmouseover="this.style.backgroundColor=''">
            <td width="35" height="22" align="center"></td>

            <td width="500" align="center">Teste 1</td>
			
            <td width="133" align="center">
              Nome do Instrutor</td>
                    
            <td width="400">Avaliação
			</td>
			
	<td  width="50">1</td>
	<td  width="50">2</td>
	<td width="50">3</td>
	<td width="50">4</td>
	<td width="50">5</td>
	<td width="50">6</td>
	<td width="50">7</td>
	<td width="50">8</td>
	<td width="50">9</td>
	<td width="50">10</td>
	<td width="50">11</td>
	<td width="50">12</td>
	<td width="50">13</td>
	<td width="50">14</td>
	<td width="50">15</td>
	<td width="50">16</td>
	<td width="50">17</td>
	<td width="50">18</td>
	<td width="50">19</td>
	<td width="50">20</td>
	<td width="50">21</td>
	<td width="50">22</td>
	<td width="50">23</td>
	<td width="50">24</td>
	<td width="50">25</td>
	<td width="50">26</td>
	<td width="50">27</td>
	<td width="50">28</td>
	<td width="50">29</td>
	<td width="50">30</td>
	<td width="50">31</td>
	<td width="50">32</td>
	<td width="50">33</td>
	<td width="50">34</td>
	<td width="50">35</td>
	<td width="50">36</td>
			
			
			
			
			
			
        </tr>
   


</table>  </body>
</html>

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Essa tabela vai exibir os dados da avaliação de cada aluno por professor ou de cada professor por aluno ?

Acho que uma forma de resolver isso será fazer o pivot dos dados para que eles fiquem organizados da forma que deseja para poderem ser percorridos e apresentados da forma como deseja.

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por violin101
      Caros amigos, saudações.
       
      Por favor, me permita tirar uma dúvida com os amigos.

      Tenho um Formulário onde o Usuário digita todos os Dados necessários.

      Minha dúvida:
      --> como faço após o usuário digitar os dados e salvar, o Sistema chamar uma Modal ou mensagem perguntando se deseja imprimir agora ?

      Grato,
       
      Cesar
    • Por Carcleo
      Tenho uma abela de usuarios e uma tabela de administradores e clientes.
      Gostaria de uma ajuda para implementar um cadastro
       
      users -> name, login, passord (pronta) admins -> user_id, registratiom, etc.. client -> user_id, registratiom, etc...
      Queria ajuda para extender de user as classes Admin e Client
      Olhem como estáAdmin
      <?php namespace App\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; class Admin extends User {     use HasFactory;            protected $fillable = [         'name',         'email',         'password',         'registration'     ];      private string $registration;     public function create(         string $name,          string $email,          string $password,         string $registration     )     {         //parent::create(['name'=>$name, 'email'=>$email, 'password'=>$password]);         parent::$name = $name;         parent::$email = $email;         parent::$password = $password;         $this->registration = $registration;     } } User
      <?php namespace App\Models; // use Illuminate\Contracts\Auth\MustVerifyEmail; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Foundation\Auth\User as Authenticatable; use Illuminate\Notifications\Notifiable; use Illuminate\Database\Eloquent\Relations\BelongsToMany; class User extends Authenticatable {     /** @use HasFactory<\Database\Factories\UserFactory> */     use HasFactory, Notifiable;     static string $name;     static string $email;     static string $password;     /**      * The attributes that are mass assignable.      *      * @var list<string>      */     protected $fillable = [         'name',         'email',         'password',     ];          /**      * The attributes that should be hidden for serialization.      *      * @var list<string>      */     protected $hidden = [         'remember_token',     ];     /**      * Get the attributes that should be cast.      *      * @return array<string, string>      */     protected function casts(): array     {         return [             'email_verified_at' => 'datetime',             'password' => 'hashed',         ];     }          public function roles() : BelongsToMany {         return $this->belongsToMany(Role::class);     }       public function hasHole(Array $roleName): bool     {                 foreach ($this->roles as $role) {             if ($role->name === $roleName) {                 return true;             }         }         return false;     }         public function hasHoles(Array $rolesName): bool     {                 foreach ($this->roles as $role) {             foreach ($rolesName as $rolee) {             if ($role->name === $rolee) {                 return true;             }          }         }         return false;     }         public function hasAbility(string $ability): bool     {         foreach ($this->roles as $role) {             if ($role->abilities->contains('name', $ability)) {                 return true;             }         }         return false;     }     } Como gravar um Admin na tabela admins sendo que ele é um User por extensão?
      Tentei assim mas é claro que está errado...
      public function store(Request $request, Admin $adminModel) {         $dados = $request->validate([             "name" => "required",             "email" => "required|email",             "password" => "required",             "registration" => "required"         ]);         $dados["password"] =  Hash::make($dados["password"]);                  $admin = Admin::where("registration",  $dados["registration"])->first();                  if ($admin)              return                    redirect()->route("admin.new")                             ->withErrors([                                 'fail' => 'Administrador já cadastrados<br>, favor verificar!'                   ]);                            $newAdmin = $adminModel->create(                                    $dados['name'],                                    $dados['email'],                                    $dados['password'],                                    $dados['registration']                                 );         dd($newAdmin);         $adminModel->save();         //$adminModel::create($admin);                  return redirect()->route("admin.new")->with("success",'Cadastrado com sucesso');     }  
    • Por violin101
      Caros amigos, saudações.
       
      Gostaria de tirar uma dúvida com os amigos, referente a PDV.
       
      Estou escrevendo um Sistema com Ponto de Vendas, a minha dúvida é o seguinte, referente ao procedimento mais correto.

      Conforme o caixa vai efetuando a venda, o Sistema de PDV já realiza:
      a baixa direto dos produtos no estoque
      ou
      somente após concretizar a venda o sistema baixa os produtos do estoque ?
       
      Grato,
       
      Cesar
       
    • Por violin101
      Caros amigos do grupo, saudações e um feliz 2025.
       
      Estou com uma pequena dúvida referente a Teclas de Atalho.

      Quando o Caps Lock está ativado o Comando da Tecla de Atalho não funciona.
      ou seja:
      se estiver para letra minúscula ====> funciona
      se estiver para letra maiúscula ====> não funciona
       
      Como consigo evitar essa falha, tanto para Letra Maiúscula quanto Minúscula ?

      o Código está assim:
      document.addEventListener( 'keydown', evt => { if (!evt.ctrlKey || evt.key !== 'r' ) return;// Não é Ctrl+r, portanto interrompemos o script evt.preventDefault(); });  
      Grato,
       
      Cesar
    • Por violin101
      Caros amigos, saudações.
       
      Por favor, poderiam me ajudar.

      Estou com a seguinte dúvida:
      --> como faço para para implementar o input código do produto, para quando o usuário digitar o ID o sistema espera de 1s a 2s, sem ter que pressionar a tecla ENTER.

      exemplo:
      código   ----   descrição
           1       -----   produto_A
       
      Grato,
       
      Cesar
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.