Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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
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
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...
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;
}
}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
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];
}>
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
)
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...
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?)
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;
}
}<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];
}>
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;
}
}<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.
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>>
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.
Como estão os scripts agora, posta tudo completo.
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];
}Quer que eu envie todo o projeto?
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><!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>Na página 2 coloca o seguinte:
print_r($_POST);
Array ( [presenca] => Array ( ['1'] => 1 ['3'] => 2 ['4'] => 3 ) ) ;
Os dados estão corretos!
Porem continuam as mensagens :
Notice: Undefined offset: 3 in C:\wamp\www\presence\addfrequencia.php on line 3
No formulário troque:
name="presenca['<?php echo $row['cod_aluno']?>']"
Por
name="presenca[<?php echo $row['cod_aluno']?>]"FUNCINCOUUU!
Cara, Só tenho a agradecer por todo esse tempo que tem dedicado me ajudando, de verdade, espero poder ajudar futuramente alguém como você me ajudou. Muito obrigado mesmo!!!!!!!
Poder até pode, mas não faz o menor sentido, já que assim ele está dentro do que é adequado.