JRFOL 0 Denunciar post Postado Março 8, 2010 Hoje tenho um sistema de upload de arquivo onde o usuario seleciona para qual turma esta enviando o arqivo. EX. Turma 421 Cada upload é feito para uma turma por vez... Me pediram para mudar o sistema, para o usuario selecionar mais de uma turma por upload... EX. Turma 421, Turma 422 Como eu faço para salvar isso no BD em registros separados ? EX. 1 - TURMA 421 - ARQUIVO123.doc 2 - TURMA 422 - ARQUIVO123.doc vo salvar as mesmas informações, só mudando a turma.... estou totalmente PERDIDO na solução deste problema.... hoje eu passo os dados do formulario e faço o INSERT no BD e tudo OK ! Compartilhar este post Link para o post Compartilhar em outros sites
_Isis_ 202 Denunciar post Postado Março 8, 2010 Você pode usar um select multiple com name = "turmas[]" e no php usar o foreach p/ iterar e p/ cada turma,inserir o registro no banco de dados. Compartilhar este post Link para o post Compartilhar em outros sites
JRFOL 0 Denunciar post Postado Março 8, 2010 eu tinha pensando em concatenar as turmas e salvar tudo no mesmo registro 1 - TURMA 421, 422, 423 - ARQUIVO123.doc dai eu só teria que mudar a página que exibe os arquivos para os alunos.... como eu montaria o select para baseado no cadastro do aluno usar o like para buscar a turma ? idéia: select arquivo from upload where turma like (select turma from aluno where codigo_aluno = abc123) (assim não funciona porque não esta montado corretamente, ñ achei a forma correta de montar este SELECT) Compartilhar este post Link para o post Compartilhar em outros sites
_Isis_ 202 Denunciar post Postado Março 8, 2010 E suponha que depois peçam que seja possível remover a associação do arquivo e de determinada turma... Além disso, a pergunta que você fez foi "Como eu faço para salvar isso no BD em registros separados ?" Sem saber como está a base fica difícil de montar um SQL certo... Compartilhar este post Link para o post Compartilhar em outros sites
JRFOL 0 Denunciar post Postado Março 8, 2010 E suponha que depois peçam que seja possível remover a associação do arquivo e de determinada turma... Além disso, a pergunta que você fez foi "Como eu faço para salvar isso no BD em registros separados ?" Sem saber como está a base fica difícil de montar um SQL certo... é verdade, eu não tinha pensando na possibilidade de depois ter que tirar o arquivo de uma turma... meu BD esta da seguinte forma: tabela_upload: id cod_professor turma serie arquivo data tabela_aluno: id cod_aluno turma serie atualmente o select da pagina de download, faz um inner join da tabela upload com a do aluno atraves da turma. estou procurando a melhor solução... o concatenar na hora de salvar e usar o like na consulta foi uma idéia que passou aqui.... Compartilhar este post Link para o post Compartilhar em outros sites
_Isis_ 202 Denunciar post Postado Março 9, 2010 Se você quer ter os arquivos enviados para as turmas onde o aluno tem registro: SELECT up.* FROM tabela_upload AS up INNER JOIN tabela_aluno AS al USING (turma) WHERE al.cod_aluno = '<CODIGO>' AND al.turma LIKE '%<TURMA>%' É isso? Compartilhar este post Link para o post Compartilhar em outros sites
Matias Rezende 50 Denunciar post Postado Março 9, 2010 Qual é o banco de dados? Carlos Eduardo Compartilhar este post Link para o post Compartilhar em outros sites
Evandro Oliveira 331 Denunciar post Postado Março 9, 2010 no formulário de envio, crie checkboxes baseado nas turmas: ... <label>Selecione o arquivo: <input type="file" name="arquivo" /></label> <fieldset> <legend>Selecione as turmas</legend> <?php $sql = mysql_query('SELECT `turma` FROM `tabela_upload`'); while(false !== ($row = mysql_fetch_assoc($sql))) echo "\t\t<label><input type=\"checkbox\" name=\"turmas[]\" value=\"{$row['turma']}\" /> Turma {$row['turma']}</label>"; ?> </fieldset> ... // daqui pra trás, você já processou o arquivo enviado e armazenou o caminho na variável $arq_end $values = ''; foreach($_POST['turmas'] as $turma) $values .= '("'.$arq_end.'","'.$turma.'"), '; $values = substr($values, 0, -2); $sql = mysql_query('INSERT INTO `tabela_upload` VALUES '.$values); Compartilhar este post Link para o post Compartilhar em outros sites
JRFOL 0 Denunciar post Postado Março 9, 2010 Se você quer ter os arquivos enviados para as turmas onde o aluno tem registro: SELECT up.* FROM tabela_upload AS up INNER JOIN tabela_aluno AS al USING (turma) WHERE al.cod_aluno = '<CODIGO>' AND al.turma LIKE '%<TURMA>%' É isso? quase... acredito que estou errando na hora de montar o like... porque eu preciso buscar na tabela upload só as turmas que são iguais as do aluno no caso seria...up.turma like '%<al.codigo>%' essa parte que não esta certa... no formulário de envio, crie checkboxes baseado nas turmas: // daqui pra trás, você já processou o arquivo enviado e armazenou o caminho na variável $arq_end $values = ''; foreach($_POST['turmas'] as $turma) $values .= '("'.$arq_end.'","'.$turma.'"), '; $values = substr($values, 0, -2); $sql = mysql_query('INSERT INTO `tabela_upload` VALUES '.$values); estou dando uma estudada no foreach.... Compartilhar este post Link para o post Compartilhar em outros sites
Matias Rezende 50 Denunciar post Postado Março 9, 2010 Repito a pergunta, já que não tive resposta. Qual o banco de dados? MySQL? SQL Server? Carlos Eduardo Compartilhar este post Link para o post Compartilhar em outros sites
JRFOL 0 Denunciar post Postado Março 9, 2010 Repito a pergunta, já que não tive resposta. Qual o banco de dados? MySQL? SQL Server? Carlos Eduardo Matias o banco é MySQL... desculpa não ter respondido antes... Compartilhar este post Link para o post Compartilhar em outros sites
Matias Rezende 50 Denunciar post Postado Março 9, 2010 Certo. Como o seu problema é na montagem da query, vou mover para o fórum de MySQL. Tópico Movido PHP http://forum.imasters.com.br/public/style_emoticons/default/seta.gif MySQL Compartilhar este post Link para o post Compartilhar em outros sites
giesta 29 Denunciar post Postado Março 14, 2010 ta tudo errado gerando redundancia você upa o arquivo pro banco, ao ser upado ele gera uma chave qualquer atraves de auto_increment essa chave se relaciona as turmas em outra tabela banco.arquivos 1 | arquivo.doc banco.turmas_arquivos 401 | 1 402 | 1 403 | 1 e acaba com esse bacalhauzao de php ai Compartilhar este post Link para o post Compartilhar em outros sites