Cadastrar em "lote" no banco MySQL
Boa Madrugada pessoal,
Estou com um problema em cadastrar em "lote" no banco de dados.
Sou iniciante em PHP+MySQL e estou tentando cadastrar na tabela do banco de dados "pagamento" a mensalidade de todos os alunos com uma $query apenas:
Recebo de um formulário o MÊS que precisa ser cadastrada a mensalidade e tem que fazer um teste se o ALUNO não está desativado (ou seja, paralisou as aulas e não pode ser cobrado por isso). Nesse código, gera uma mensalidade para cada aluno cadastrado no sistema com status "ativo" .
aqui está o código do cadastro:
<?php
require ("../conexao.php"); // conecta com o banco de dados
$mes = $_POST['mes_mensalidade']; // recebe o valor do formulário para cadastrar o mês
$sql = "SELECT * FROM aluno WHERE id_status = 1;"; // seleciona todos os alunos que estão ativos
$result = $conn->query($sql); // faz a consulta no banco de dados
while ($row = $result->fetch_array()){ // enquanto tiver linhas a serem consultadas faz...
$sql = "INSERT INTO pagamento (aluno_pagamento, mes_pagamento, status_pagamento) VALUES (".$row['id_aluno'].",".$mes.",0);"; // insere na tabela pagamento os dados dos alunos
$cadastrar = $conn->query($sql); // faz a inserção
}
}
if (($conn->query($sql)==TRUE) AND ($cadastrar)){ // testa se as duas "query's" foram executadas
header('Location: ../formularioCadastroMensalidades.php?msg=27'); // redireciona para a página de "OK"
}else{
echo $conn->error; // se não der certo, escreve o erro
}
$conn->close(); // fecha a conexão
?>
O problema que está acontecendo, é que ele cadastra TODOS os alunos, mas o último cadastra 2x
e não estou entendendo isso.... porque está cadastrando duas vezes o último aluno?
por favor.. preciso de ajuda urgente!!!Discussão (2)
Carregando comentários...