Ir para conteúdo

Arquivado

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

joaogalodoido

Inserir vários registros de um array no banco

Recommended Posts

Possuo um formulário onde é exibido os nomes dos alunos cadastrados para o usuário inserir a nota final de uma prova ou atividade. Fiz assim:

<form action="#" method="post" class="form-horizontal mb-lg"  >
  
													<?php
					
					
					mysql_query('SET NAMES utf8');
	
	$SelAluno=mysql_query("SELECT * FROM alunos ORDER BY nome ASC ");
	while($mAluno=mysql_fetch_array($SelAluno)){
	

 
 $id=$mAluno[id];
		$c++;
		if($c % 2 ==0){
			$cor='gradeX';
		}else{
			$cor='gradeC';
		}
		echo'
		<div class="form-group">
			<label class="col-sm-1 control-label">Aluno </label>
			<div class="col-md-6">
			<input type="text" name="naluno'.$c.'" class="form-control" value="'.$mAluno[nome].'"  readonly ><input name="matricula'.$c.'" type="hidden" class="form-control" value="'.$mAluno[id].'"  readonly >
			</div>
            <label class="col-sm-2 control-label">Resultado </label>
			<div class="col-md-2">
				<input name="vobtido'.$c.'" class="form-control" data-plugin-masked-input data-input-mask="99,99">
			</div>
          </div>' ;
	}?>
               		<button type="submit" class="btn btn-primary submit">ENVIAR NOTAS PROVA</button>
													</form>

Gostaria de saber como faço para incluir todos os registros no banco de uma vez só, independente do número de cadastros. Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sua lógica para criação de formulários está correta, mas será muito mais facil você acessar os valores se você mudar os atributos "name" para uma sintaxe de array, que o PHP interpreta:

 

 

name="aluno['.$c.'][nome]"
name="aluno['.$c.'][voto]"

 

Quando submeterem o formulário, você poderá acessar o valor de qualquer aluno assim:

 

 

$_POST['aluno'][0]['nome'] // pega o nome do primeiro aluno
$_POST['aluno'][1]['nome'] // do segundo
// etc...

 

 

É uma boa ideia você colocar um campo escondido com o ID do aluno:

 

<input type="hidden" name="aluno['.$c.'][id]" value="'.$id.'" />

 

Agora no backend você tem o ID relacionado a nota.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entendi. Mas o número de alunos não é fixo, pode variar. Como busco o $_POST independente da quantidade de alunos? Tipo, ficaria ruim eu criar vários $_POST sabendo que esse número pode ser 1 ou até 100.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Poste o código que você até o momento, do formulário e do PHP (foreach)

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

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