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 daemon
      Boa tarde,
       
      Eu tenho uma rotina que faz uma leitura do arquivo .xml de vários sites.

      Eu consigo pegar o tópico e a descrição, e mostrar a imagem que esta na pagina do link.
      Para isso utilizo esta função:
      function getPreviewImage($url) { // Obter o conteúdo da página $html = file_get_contents($url); // Criar um novo objeto DOMDocument $doc = new DOMDocument(); @$doc->loadHTML($html); // Procurar pela tag meta og:image $tags = $doc->getElementsByTagName('meta'); foreach ($tags as $tag) { if ($tag->getAttribute('property') == 'og:image') { return $tag->getAttribute('content'); } } // Se não encontrar og:image, procurar pela primeira imagem na página $tags = $doc->getElementsByTagName('img'); if ($tags->length > 0) { return $tags->item(0)->getAttribute('src'); } // Se não encontrar nenhuma imagem, retornar null return null; } // Uso: $url = "https://example.com/article"; $imageUrl = getPreviewImage($url); if ($imageUrl) { echo "<img src='$imageUrl' alt='Preview'>"; } else { echo "Nenhuma imagem encontrada"; }  
      Mas estou com um problema, esta funcão funciona quando coloco em uma pagina de teste.php. Preciso mostrar em uma página inicial diversas fotos de todos os links. (No caso acima só funciona 1).
    • 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
×

Informação importante

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