Ir para conteúdo

POWERED BY:

Arquivado

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

JRFOL

Como desenvolver codigo...

Recommended Posts

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

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

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

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

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

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

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

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

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

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

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.