Ir para conteúdo

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 landerbadi
      Boa tarde pessoal. Estou tentado fazer uma consulta no banco de dados porém estou tendo dificuldades. Tenho uma tabela chamada "itens" com os seguintes campos: id, item, ativo. Nela tem cadastrado vários itens. No campo ativo eu coloco a letra "S" para informar que este item está ativo no sistema. Por exemplo: 1, casa, S 2, mesa, S 3, cama, S 4, moto S 5, rádio O quinto registro "radio" não está ativo no sistema pois não tem um "S" no campo ativo. E outra tabela chamada "produtos" com os seguintes campos (id, item1, item2, item3) com os seguintes registros: 1, casa, mesa, moto 2, mesa, casa, cama 3, rádio, cama, mesa Eu preciso fazer uma busca na tabela produtos da seguinte maneira: Eu escolho um registro na tabela "itens", por exemplo "mesa". Preciso fazer com que o php me liste todos os registros da tabela "produtos" que contenham a palavra "mesa". Até aqui tudo bem eu consigo listar. Estou fazendo assim: <?php $item = "mesa" $sql = mysqli_query($conn, "SELECT * FROM produtos WHERE item1 LIKE '$item' OR item2 LIKE '$item' OR item3 LIKE '$item' LIMIT 10"); while($aux = mysqli_fetch_assoc($sql)) { $id = $aux["id"]; $item1 = $aux["item1"]; $item2 = $aux["item2"]; $item3 = $aux["item3"]; echo $id . " - " . $item1 . ", " . $item2 . ", " $item3 . "<br>"; } ?> O problema é que está listando todos os registros que contém o item mesa. Eu preciso que o php verifique os demais item e me liste somente os registro em que todos os registros estejam ativos no sistema. No exemplo acima ele não deveria listar o registro 3. pois nesse registro contém o item "radio" e este item não está ativo no sistema. Ou seja, o registro "radio" na tabela itens não possui um "S" na coluna "ativo". Alguém sabe como resolver isso?
    • Por ILR master
      Fala galera.
      Espero que todos estejam bem.
      Seguinte: Tenho um arquivo xml onde alguns campos estão com : (dois pontos), como o exemplo abaixo:
       
      <item>
      <title>
      d sa dsad sad sadasdas
      </title>
      <link>
      dsadas dsa sad asd as dsada
      </link>
      <pubDate>sadasdasdsa as</pubDate>
      <dc:creator>
      d sad sad sa ad as das
      </dc:creator>
      </item>
       
      Meu código:
       
      $link = "noticias.xml"; 
      $xml = simplexml_load_file($link); 
      foreach($xml -> channel as $ite) {     
           $titulo = $ite -> item->title;
           $urltitulo = $ite -> item->link;
           print $urltitulo = $ite -> item->dc:creator;
      } //fim do foreach
      ?>
       
      Esse campo dc:creator eu não consigo ler. Como faço?
       
      Agradeço quem puder me ajudar.
       
      Abs
       
       
    • Por First
      Olá a todos!
       
      Eu estou criando um sistema do zero mas estou encontnrando algumas dificuldades e não estou sabendo resolver, então vim recorrer ajuda de vocês.
      Aqui está todo o meu código: https://github.com/PauloJagata/aprendizado/
       
      Eu fiz um sistema de rotas mas só mostra o conteúdo da '/' não sei porque, quando eu tento acessar o register nada muda.
      E eu também quero que se não estiver liberado na rota mostra o erro de 404, mas quando eu tento acessar um link inválido, nada acontece.
      Alguém pode me ajudar com isso? E se tiver algumas sugestão para melhoria do código também estou aceitando.
       
       
      Desde já, obrigado.
    • Por landerbadi
      Olá pessoal, boa tarde
       
      Tenho uma tabela chamada "produtos" com os seguintes campos (id, produto) e outra tabela chamada "itens" com os seguintes campos (id, prod_01, prod_02, prod_03, prod_04).
       
      Na tabela produtos eu tenho cadastrado os seguintes produtos: laranja, maçã, uva, goiaba, arroz, feijão, macarrão, etc.
       
      Na tabela itens eu tenho cadastrado os itens da seguinte maneira:
       
      1, laranja, uva, arroz, feijão;
      2, maçã, macarrão, goiaba, uva;
      3, arroz, feijão, maçã, azeite
       
      Meu problema é o seguinte: 
      Eu escolho um produto da tabela "produtos", por exemplo "uva".  Preciso fazer uma consulta na tabela "itens" para ser listado todos os registros que contenham o produto "uva" e que todos os demais produtos estejam cadastrados na tabela "produtos".
       
      No exemplo acima seria listado apenas dois registros, pois o terceiro registro não contém o produto "uva". 
       
      Alguém pode me ajudar? Pois estou quebrando a cabeça a vários dias e não consigo achar uma solução.
    • Por landerbadi
      Boa tarde pessoal. Estou tentado fazer uma consulta no banco de dados porém estou tendo dificuldades. Tenho uma tabela chamada "itens" com os seguintes campos: id, item, plural, ativo. Nela tem cadastrado vários itens e seu respectivo plural. No campo ativo eu coloco a letra "S" para informar que esta palavra está ativa no sistema. Por exemplo: 1, casa, casas, S 2, mesa, mesas, S 3, cama, camas, S 4, moto, motos, S 5, rádio, rádios O quinto registro "radio" não está ativo no sistema pois não tem um "S" no campo ativo. E outra tabela chamada "variações" com os seguintes campos (id, item1, item2, item3) com os seguintes registros: 1, casa, camas, moto 2, mesas, casas, radio 3, rádio, cama, mesa Eu preciso fazer uma busca na tabela variações da seguinte maneira: Eu escolho um registro na tabela "itens", por exemplo "casa". Preciso fazer com que o php me liste todos os registros da tabela "variações" que contenham a palavra "casa". Porém se tiver algum registro com a palavra "casas" também tem que ser listado. Neste caso ele irá encontrar dois registros. Agora eu preciso que o php verifique os demais itens e faça a listagem apenas dos item que estão ativos (que contenham um "S" no campo ativo. Neste caso ele irá encontrar apenas um registro, pois o segundo registro contém a palavra "rádio". E "rádio" não está ativo na tabela itens. Como faço isso?
×

Informação importante

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