madera 0 Denunciar post Postado Maio 17, 2005 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
Douglas 6 Denunciar post Postado Maio 17, 2005 //Movido Compartilhar este post Link para o post Compartilhar em outros sites
red neck * 0 Denunciar post Postado Maio 18, 2005 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
madera 0 Denunciar post Postado Maio 19, 2005 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
red neck * 0 Denunciar post Postado Maio 19, 2005 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
pcsilva 0 Denunciar post Postado Maio 19, 2005 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
madera 0 Denunciar post Postado Maio 19, 2005 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
red neck * 0 Denunciar post Postado Maio 19, 2005 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