Ir para conteúdo

POWERED BY:

Arquivado

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

tngcunha

foreach por while

Recommended Posts

Gostaria de saber se o seguinte codigo pode ser convertido para um while e como :

foreach($_POST['presenca'] as $row ){
            echo $row;
         }

agradeço desde ja

Compartilhar este post


Link para o post
Compartilhar em outros sites

Poder até pode, mas não faz o menor sentido, já que assim ele está dentro do que é adequado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Poder até pode, mas não faz o menor sentido, já que assim ele está dentro do que é adequado.

Estou precisando arrumar um codigo que use 2 loops, porém o unico jeito que da certo é usando um de cada vez :

      while ($row = mysqli_fetch_assoc($resultado)) {
            $cod_aluno = $row['cod_aluno'];
            echo $cod_aluno;
      }
         
      foreach($_POST['presenca'] as $row ){
            echo $row;
      }

Se eu colocar um dentro do outro, o resultado sai triplicado assim dando 3x o resultado que eu quero.

Preciso salvar a variavel cod_aluno para utilizar dentro do foreach porém com este codigo só consigo receber o ultimo $cod_aluno

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como essas duas informações estão ligadas entre si? O ideal seria de alguma forma você colocar no array do presenca o $cod_aluno, assim ficaria fácil resgatar...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como essas duas informações estão ligadas entre si? O ideal seria de alguma forma você colocar no array do presenca o $cod_aluno, assim ficaria fácil resgatar...

while ($row = mysqli_fetch_assoc($resultado)) {
            $cod_aluno = $row['cod_aluno'];
            echo $cod_aluno;

         
      foreach($_POST['presenca'] as $row ){
            echo $row;
      }
      }

Compartilhar este post


Link para o post
Compartilhar em outros sites

Desta forma recebo codigo do aluno : 1 - e todas a presenças indo para cada aluno. exemplo:

Aluno 1 : presença1, 2, 3

Aluno 2 : presença1, 2, 3

Aluno 3 : presença1, 2, 3

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não respondeu a minha pergunta, então vou entrar no modo bola de cristal...

while ($row = mysqli_fetch_assoc($resultado)) {
$cod_aluno = $row['cod_aluno'];
echo $cod_aluno;
echo $_POST['presenca'][$cod_aluno];
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

Não respondeu a minha pergunta, então vou entrar no modo bola de cristal...

while ($row = mysqli_fetch_assoc($resultado)) {
$cod_aluno = $row['cod_aluno'];
echo $cod_aluno;
echo $_POST['presenca'][$cod_aluno];
}

Cod_Aluno vem do banco de dados e a presença de um formulario

 

Vou tentar explicar novamente com mais detalhes :

Possuo um formulario para atribuir presenças para 3 alunos identificados pelo cod_aluno, sendo apenas 3 alunos :

1

3

4

 

neste formulario eu coloco quantas presenças o aluno teve, (1 a 4). Estou testando como:

Aluno 1 = 1 Presença,

Aluno 3 = 2 Presenças e

Aluno 4 = 3 Presenças.

 

Porém só consigo receber os resultados separadados (O codigo dos 3 alunos e depois os 3 valores da presença) ou os 3 alunos recebendo as 3 presenças

(

Aluno 1 : presença1, 2, 3

Aluno 3 : presença1, 2, 3

Aluno 4 : presença1, 2, 3

)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Beleza, eu já entendi tudo, só que novamente, continuo tentando visualizar a coisa usando uma bola de cristal, pois mais importante que uma explicação de 500 linhas é entender como a dinâmica do seu sistema funciona, por exemplo como é o formulário de onde está vindo o post? Se você postar o formulário eu vou conseguir entender como o array está estruturado e ai vou conseguir pensar em como ler isto no while...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pagina 1 (Formulario):

while($row = mysqli_fetch_array($resultado)){
   ?> 
      <tr>
         <td align="center"><?php echo $row['cod_aluno'] ?></td>
         <td><?php echo $row['nome'] ?></td>
         <td><?php echo $row['email'] ?></td>
         <td align="center"><?php echo $row['presencas'] ?></td>
         <td align="center"><?php echo $row['faltas'] ?></td>
         <td>
            <input type="hidden" name="cod_aluno" value="<?$row['cod_aluno']?>">
            1<input type="checkbox" name="presenca[]" value="1">
            2<input type="checkbox" name="presenca[]" value="2">
            3<input type="checkbox" name="presenca[]" value="3">
            4<input type="checkbox" name="presenca[]" value="4">
         </td>
      </tr>

Pagina 2 (Resposta):

      $turma = $_SESSION["turma"];
      $query = "SELECT * FROM aluno where id_professor = '{$_SESSION['id_professor']}' and cod_turma ='$turma' ";
      $resultado = mysqli_query($conexao, $query);



      while ($row = mysqli_fetch_assoc($resultado)) {
            $cod_aluno = $row['cod_aluno'];
            echo $cod_aluno;
      }
         
      foreach($_POST['presenca'] as $row ){
            echo $row;
      }

(Utilizei seu outro codigo sem o cod_aluno pois recebo um Undefined offset no segundo echo porém recebo um array, como posso percorrer esse array?)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Troque:

<td>
<input type="hidden" name="cod_aluno" value="<?$row['cod_aluno']?>">
1<input type="checkbox" name="presenca[]" value="1">
2<input type="checkbox" name="presenca[]" value="2">
3<input type="checkbox" name="presenca[]" value="3">
4<input type="checkbox" name="presenca[]" value="4">
</td>

Por:

<td>
<input type="hidden" name="cod_aluno" value="<?$row['cod_aluno']?>">
1<input type="checkbox" name="presenca['<?$row['cod_aluno']?>'][]" value="1">
2<input type="checkbox" name="presenca['<?$row['cod_aluno']?>'][]" value="2">

3<input type="checkbox" name="presenca['<?$row['cod_aluno']?>'][]" value="3">
4<input type="checkbox" name="presenca['<?$row['cod_aluno']?>'][]" value="4">
</td>

No PHP:

while ($row = mysqli_fetch_assoc($resultado)) {
$cod_aluno = $row['cod_aluno'];
echo $cod_aluno;
foreach($_POST['presenca'][$cod_aluno] as $nota){
echo $nota;
}
}

Só que imagino que a pessoa só vá poder marcar 1 opção, logo o correto seria usar radio...

<td>
<input type="hidden" name="cod_aluno" value="<?$row['cod_aluno']?>">
1<input type="radio" name="presenca['<?$row['cod_aluno']?>']" value="1">
2<input type="radio" name="presenca['<?$row['cod_aluno']?>']" value="2">

3<input type="radio" name="presenca['<?$row['cod_aluno']?>']" value="3">
4<input type="radio" name="presenca['<?$row['cod_aluno']?>']" value="4">
</td>

Então:

while ($row = mysqli_fetch_assoc($resultado)) {
$cod_aluno = $row['cod_aluno'];
echo $cod_aluno;
echo $_POST['presenca'][$cod_aluno];
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

Troque:

<td>
<input type="hidden" name="cod_aluno" value="<?$row['cod_aluno']?>">
1<input type="checkbox" name="presenca[]" value="1">
2<input type="checkbox" name="presenca[]" value="2">
3<input type="checkbox" name="presenca[]" value="3">
4<input type="checkbox" name="presenca[]" value="4">
</td>

Por:

<td>
<input type="hidden" name="cod_aluno" value="<?$row['cod_aluno']?>">
1<input type="checkbox" name="presenca['<?$row['cod_aluno']?>'][]" value="1">
2<input type="checkbox" name="presenca['<?$row['cod_aluno']?>'][]" value="2">

3<input type="checkbox" name="presenca['<?$row['cod_aluno']?>'][]" value="3">
4<input type="checkbox" name="presenca['<?$row['cod_aluno']?>'][]" value="4">
</td>

No PHP:

while ($row = mysqli_fetch_assoc($resultado)) {
$cod_aluno = $row['cod_aluno'];
echo $cod_aluno;
foreach($_POST['presenca'][$cod_aluno] as $nota){
echo $nota;
}
}

Só que imagino que a pessoa só vá poder marcar 1 opção, logo o correto seria usar radio...

<td>
<input type="hidden" name="cod_aluno" value="<?$row['cod_aluno']?>">
1<input type="radio" name="presenca['<?$row['cod_aluno']?>']" value="1">
2<input type="radio" name="presenca['<?$row['cod_aluno']?>']" value="2">

3<input type="radio" name="presenca['<?$row['cod_aluno']?>']" value="3">
4<input type="radio" name="presenca['<?$row['cod_aluno']?>']" value="4">
</td>

Então:

while ($row = mysqli_fetch_assoc($resultado)) {
$cod_aluno = $row['cod_aluno'];
echo $cod_aluno;
echo $_POST['presenca'][$cod_aluno];
}

 

Resultado :

Notice: Undefined offset: 1 in C:\wamp\www\presence\addfrequencia.php on line 40

(echo $_POST['presenca'][$cod_aluno];)

 

Alguma alternativa para isto???

 

 

No principio eu iria usar o radio porém estava com outro problema que não lembro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Troque:

<td>
<input type="hidden" name="cod_aluno" value="<?$row['cod_aluno']?>">
1<input type="radio" name="presenca['<?$row['cod_aluno']?>']" value="1">
2<input type="radio" name="presenca['<?$row['cod_aluno']?>']" value="2">

3<input type="radio" name="presenca['<?$row['cod_aluno']?>']" value="3">
4<input type="radio" name="presenca['<?$row['cod_aluno']?>']" value="4">
</td>

Por:

<td>
<input type="hidden" name="cod_aluno" value="<?php echo $row['cod_aluno']?>">
1<input type="radio" name="presenca['<?php echo $row['cod_aluno']?>']" value="1">
2<input type="radio" name="presenca['<?php echo $row['cod_aluno']?>']" value="2">

3<input type="radio" name="presenca['<?php echo $row['cod_aluno']?>']" value="3">
4<input type="radio" name="presenca['<?php echo $row['cod_aluno']?>']" value="4">
</td>

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

Troque:

<td>
<input type="hidden" name="cod_aluno" value="<?$row['cod_aluno']?>">
1<input type="radio" name="presenca['<?$row['cod_aluno']?>']" value="1">
2<input type="radio" name="presenca['<?$row['cod_aluno']?>']" value="2">

3<input type="radio" name="presenca['<?$row['cod_aluno']?>']" value="3">
4<input type="radio" name="presenca['<?$row['cod_aluno']?>']" value="4">
</td>

Por:

<td>
<input type="hidden" name="cod_aluno" value="<?php echo $row['cod_aluno']?>">
1<input type="radio" name="presenca['<?php echo $row['cod_aluno']?>']" value="1">
2<input type="radio" name="presenca['<?php echo $row['cod_aluno']?>']" value="2">

3<input type="radio" name="presenca['<?php echo $row['cod_aluno']?>']" value="3">
4<input type="radio" name="presenca['<?php echo $row['cod_aluno']?>']" value="4">
</td>

 

Notice: Undefined offset: 1 in C:\wamp\www\presence\addfrequencia.php on line 40

 

Continuo com o mesmo problema

 

Só comentando mais um pouco :

Obrigado por estar tentando me ajudar, serio mesmo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como estão os scripts agora, posta tudo completo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como estão os scripts agora, posta tudo completo.

 

Pagina 1 :

while($row = mysqli_fetch_array($resultado)){
   ?> 
      <tr>
         <td align="center"><?php echo $row['cod_aluno'] ?></td>
         <td><?php echo $row['nome'] ?></td>
         <td><?php echo $row['email'] ?></td>
         <td align="center"><?php echo $row['presencas'] ?></td>
         <td align="center"><?php echo $row['faltas'] ?></td>
         <td>
1<input type="radio" name="presenca['<?php echo $row['cod_aluno']?>']" value="1">
2<input type="radio" name="presenca['<?php echo $row['cod_aluno']?>']" value="2">

3<input type="radio" name="presenca['<?php echo $row['cod_aluno']?>']" value="3">
4<input type="radio" name="presenca['<?php echo $row['cod_aluno']?>']" value="4">
</td>
      </tr>

Pagina 2 :

$turma = $_SESSION["turma"];
      $query = "SELECT * FROM aluno where id_professor = '{$_SESSION['id_professor']}' and cod_turma ='$turma' ";
      $resultado = mysqli_query($conexao, $query);


      while ($row = mysqli_fetch_assoc($resultado)) {
$cod_aluno = $row['cod_aluno'];
echo $cod_aluno;
echo $_POST['presenca'][$cod_aluno];

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acessa a página do formulário:

while($row = mysqli_fetch_array($resultado)){
?> 
<tr>
<td align="center"><?php echo $row['cod_aluno'] ?></td>
<td><?php echo $row['nome'] ?></td>
<td><?php echo $row['email'] ?></td>
<td align="center"><?php echo $row['presencas'] ?></td>
<td align="center"><?php echo $row['faltas'] ?></td>
<td>
1<input type="radio" name="presenca['<?php echo $row['cod_aluno']?>']" value="1">
2<input type="radio" name="presenca['<?php echo $row['cod_aluno']?>']" value="2">

3<input type="radio" name="presenca['<?php echo $row['cod_aluno']?>']" value="3">
4<input type="radio" name="presenca['<?php echo $row['cod_aluno']?>']" value="4">
</td>
</tr>

Manda exibir o código fonte e copia ele todo e ai cola ele aqui para a gente ver, apenas deixando claro, eu quero o código fonte da página renderizada (aquilo que você vê no navegador).

Compartilhar este post


Link para o post
Compartilhar em outros sites


 

<!doctype html>

<html lang=''>

<head>

<meta charset='utf-8'>

<link rel="stylesheet" href="styles.css">

 

<title>Presence</title>

</head>

<body>

 

<div id='cssmenu'>

<ul>

<li><a href='index.php'>Home</a></li>

<li class='active'><a href='frequencia.php'>Frequencia</a></li>

<li><a href='turmas.php'>Turmas</a></li>

<li><a href='alunos.php'>Alunos</a></li>

<li><a href='logout.php'>Sair</a></li>

</ul>

</div>

 

<input type="button" value="Voltar" onclick="javascript: location.href='frequencia.php';" />

<h1 align="center">Marque o numero de aulas em que o aluno está presente</h1>

<form accept-charset="utf-8" method="POST" action="addfrequencia.php">

<table border="2">

<tr>

<td>Codigo_aluno</td>

<td>Nome</td>

<td>E-mail</td>

<td>Presenças</td>

<td>Faltas</td>

<td>Adicionar</td>

</tr>

 

<tr>

<td align="center">1</td>

<td>213</td>

<td>123</td>

<td align="center">0</td>

<td align="center">0</td>

<td>

1<input type="radio" name="presenca['1']" value="1">

2<input type="radio" name="presenca['1']" value="2">

 

3<input type="radio" name="presenca['1']" value="3">

4<input type="radio" name="presenca['1']" value="4">

</td>

</tr>

 

<br>

<tr>

<td align="center">3</td>

<td>das</td>

<td>dsa</td>

<td align="center">0</td>

<td align="center">0</td>

<td>

1<input type="radio" name="presenca['3']" value="1">

2<input type="radio" name="presenca['3']" value="2">

 

3<input type="radio" name="presenca['3']" value="3">

4<input type="radio" name="presenca['3']" value="4">

</td>

</tr>

 

<br>

<tr>

<td align="center">4</td>

<td>dsa</td>

<td>sa</td>

<td align="center">0</td>

<td align="center">0</td>

<td>

1<input type="radio" name="presenca['4']" value="1">

2<input type="radio" name="presenca['4']" value="2">

 

3<input type="radio" name="presenca['4']" value="3">

4<input type="radio" name="presenca['4']" value="4">

</td>

</tr>

 

<br> </table><br>

<input type="submit" value="Enviar">

</form>

 

</body>

</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na página 2 coloca o seguinte:
print_r($_POST);

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.