Ir para conteúdo

POWERED BY:

Arquivado

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

madera

Inserir vários registros de uma vez!

Recommended Posts

Olá pessoal, o meu problema é o seguinte:PHP, MySQLTenho um formulário para digitar as notas dos alunos, fiz um select na tabela de alunos pra mostrar os nomes, e na frente eu tenho os textfield para digitar as notas.Nome | Notanome1 textfieldnotanome2 textfieldnotanome3 textfieldnota.......... ................Como inserir todas as notas de uma vez? sendo que a quantidade de registros pode variar!Por favor, alguem sabe como fazer isso?Desde já muito obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

acho que voce teria que criar uma funcaozinha cara...é que depende, como as notas vao para o db ? todas em 1 unico campo ? ou cada uma em um campo ?porque se for todas em um campo voce pega todos os valores e joga numa variavel so, caso contrario voce poderia fazer assim:

$campo = (isset($_POST["campo"])) ? $_POST["campo"] : "";

se o campo "campo" estivesse vazio, a variavel campo seria vazia, mais sem retornar nenhum erro..[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá amigo, muito obrigado pela atenção!

Sobre suas perguntas:

tenho as tabelas 'alunos'(código, nome,...) e 'notas'(código do aluno, nota)

para adicionar a nota eu só preciso do "código do aluno"

Mas a questão é que os dados são dinâmicos.

Olha a forma como está criado o formulário para exibir:

 

______________________NOME______|__NOTA

 

Região repetida >> {Recordset1.nome}_|__Textfield__ << Região repetida

 

Então ele vai repetir essa linha mostrando todos os nomes dos alunos cadastrados.

O problema é que esse textfield aí é um textfield normal, então como está na região de repetição ele vai repetir-lo mas na verdade com o mesmo nome, entende?, como que eu vou diferenciar esses textfields em cada linha?

em cada linha eu tenho também o "código" correspondente ao nome do aluno, para poder adicionar na tabela de notas, junto com a respectiva nota que se encontra na mesma linha.(que vai ser digitada no textfield)

Da maneira que eu fiz, ele adiciona somente a última linha, ou seja ele faz um insert só, porque não dá pra fazer um para cada linha neh, além do que eu não sei quantas linhas vai ter, eu queria adicionar todas as linha de uma vez....

 

procurei alguma coisa sobre isso no fórum, mais só achei em ASP....

 

Alguém pode dar uma força aqui?.....uma solução

eu pensei em colocar um laço de repetição nesta inserção de acordo com o número de linhas que eu tiver, mais como que eu vou fazer para ir linha por linha eu não sei!

Ou criar um array, seilah!! ou com frame.....

 

Agradeço a quem puder colaborar

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara continuo sem entender..para exibir todos os registros voce teria que usar um loop sim...agora para nao exibir o mesmo nome mais de uma vez voce usa o GROUP bymalz ai se falei besteira, mais realmente nao entendise alguem entendeu ai por favor[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você tem um loop que constrói o formulário, certo?

 

então você deve nomea-lo de forma que no momento que o usuário envie os dados eles sejam enviados como array.

 

tipo

PHP

[*]<?

[*]for($i=0; $i <3; $i++){

[*] echo "Nome <input name='nome[".$i."]' type='text' /> ";

[*] echo " Nota <input name='nota[".$i."]' type='text' /> ";

[*] echo "<br /> ";

[*]}

[*]?>

 

Para pegar as informações em loop fica facim

PHP

[*]<?

[*]$num=count($_POST['nome']);

[*]for($i=0; $i <$num; $i++){

[*] echo "Nome ".$_POST['nome'][$i];

[*] echo " - Nota".$_POST['nota'][$i];

[*] echo "<br /> ";

[*]}

[*]?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Caro red neck *, desculpe se não expliquei bem, pode ser que o problema esteja tão claro pra mim, que não estou conseguindo passa-lo corretamente!

 

Fiz o seguinte:

 

SELECT * FROM alunos

 

Vai mostrar todos os alunos cadastrados:

 

Na frente de cada nome do aluno que será exibido, eu coloquei um textfield, que vai ser repetido de acordo com o número de registros que eu tiver.

 

Na codificação:

Esse "Recordset1.nome" é o SELECT nome FROM alunos, a >>região repetida<< é que vai gerar as linhas conforme o número de cadastros

______________________NOME______|__NOTA

Região repetida >> {Recordset1.nome}_|__Textfield__ << Região repetida

 

 

Vizualização:

 

______________________NOME______|__NOTA

 

______________________nome1_____|__textfield

______________________nome2_____|__textfield

______________________nome3_____|__textfield

______________________.........._____|__...........

 

Como eu faço para cadastrar as notas referentes aos alunos?

 

Acho que ficou mais claro...!!??

 

Agradeço a atençao do pcsilva também, apesar de não ser bem o q eu queria você me deu outra idéia!

Compartilhar este post


Link para o post
Compartilhar em outros sites

entendi, mais isso seria um loop mesmo, voce ja tentou usar?olha um exemplo:

<?$arr_db = Array("aluno01"=>10,"aluno02"=>7,"aluno03"=>3);foreach($arr_db as $aluno => $nota){echo $aluno . " / " . $nota . "<br>";}?>

ajudou?[]'s

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.