Ir para conteúdo

POWERED BY:

Arquivado

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

Rodrigo.Carvalho

[Resolvido] Inserção Múltiplos Registros Foreach

Recommended Posts

Olá, amigos.

 

Pesquisei no fórum e não encontrei algo que pudesse sanar minha dúvida, sou iniciante em php. Minha dúvida é como inserir multiplos registros com dados vindo do formulario via foreach.

 

Vou passar a estrutura:

 

Possuo uma TABELA com registros de ALUNOS(MATRICULA, NOME, SITUACAO, TURMA)

 

Eu listo esses dados dentro do formulario da seguinte maneira (os campos são txtNOTA e txtFALTAS);

Imagem Postada

 

Queria inserir esses registros para uma tabela de movimentos utilizando foreach (cada registro é um insert) e não estou conseguindo.

 

Exemplo tabela movimentos (ID, MATRICULA, NOTA, FALTAS)

 

Alguém poderia me ajudar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

  foreach($_POST as $k => $v) {
    echo $k." => ".$v;
  }

acho que isso te dah uma luz de o que fazer...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo, isso é simples. Faça o seguinte:

 

Na página que contém o formulário, insira um input type="hidden" com o ID de cada usuário da lista. Isso será necessário para fazer a inserção de cada registro em seu respectivo ID.

Logo após, nos dois inputs text que você criou para digitar "nota" e "faltas", você coloca o name="" deles com colchetes no final, por exemplo: name="notas[]".

Faça isso dos colchetes no hidden também. Exemplo: <input type="hidden" name="idUsuario" value="<?php echo $x['id']; ?>" />

 

Na página que recebe os dados, faça algo assim:

 

$id = $_POST['idUsuario'];
$notas = $_POST['notas'];
$faltas = $_POST['faltas'];
$i = 0;

foreach ($id as $idUser) {
	++$i;
	mysql_query('INSERT INTO `usuarios` SET `notas`='.$notas[$i].', `faltas`='.$faltas[$i].' WHERE `id`='.$idUser);
}

;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tentei fazer, mas não consegui. Dá o seguinte erro: Invalid argument supplied for foreach()

 

 

<?php
$id = $_POST['MatAluno'];
$notas = $_POST['txtNOTA'];
$faltas = $_POST['txtFALTAS'];
$i = 0;

foreach ($id as $idUser) {        
++$i;

$sql = "INSERT INTO tb_notas_1bim (matricula_aluno, nota, faltas) VALUES ('.$id[$i].', '.$notas[$i].', '.$faltas[$i].')";

$inserir = mysql_query($sql) or die(mysql_error());
}


?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Assim:

 

<?php
$id = $_POST['MatAluno'];
$notas = $_POST['txtNOTA'];
$faltas = $_POST['txtFALTAS'];
$i = 0;

foreach ($id as $idUser) {
        ++$i;
        mysql_query('INSERT INTO `tb_notas_1bim` SET `matricula_aluno`='.$idUser.', `nota`='.$notas[$i].', `faltas`='.$faltas[$i]);
}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fiz algumas alterações e alguns testes e funcionou. Obrigado pela ajuda, amigo. Vou postar o bloco de códigos como ficou. Poderá ser útil para alguém futuramente.

 

<?php
require_once('include\cx_banco.php');  

$matricula = $_POST['MatAluno'];
$notas = $_POST['txtNOTA'];
$faltas = $_POST['txtFALTAS'];
$turma = $_POST['idTurma'];
$pletivo = $_POST['pLetivo'];
$dp = $_POST['disciplina'];
$uensino = $_POST['uensino'];
$matprof = $_POST['matprof'];

$i = 0;

foreach ($matricula as $mat) {        


$sql = "INSERT INTO tb_notas_1bim (matricula_aluno, nota, faltas, id_turma, pletivo, codigo_disciplina, codigo_uensino, matricula_professor) VALUES ('.$matricula[$i].', '.$notas[$i].', '.$faltas[$i].', '$turma[$i]', '$pletivo', '$dp', '$uensino', '$matprof')";

$consulta = mysql_query($sql) or die(mysql_error());
++$i;
}
echo "<script>{
alert ('Notas inseridas com sucesso!')
location.href='PreHome.php'
}
</script>";

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tem certeza que funcionou 100% do jeito q você postou?

Me parece ter pequenos erros nessa query q você editou. Verifique como estão sendo cadastradas, compare com a minha (se estiver com problema), e adapte.

 

Até mais.

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.