Vendo sua modelagem:
- cursos
id, nome_curso
- cursos_selecionados
id, nome, curso1, curso2
dessa forma fica inviável saber que dia cada curso está alocado!
Existem mais entidades? Mais atributos para as mesmas citadas?
bom deixa eu explicar meu problema desde o principio:
Segue abaixo:
Tenho alguma noção em PHP, porém sou iniciante ainda e estou desenvolvendo o seguinte sistema, segue abaixo oq o sistema faz:
Banco de Dados: Tenho duas tabelas:
Tabela oficinas:idoficinas | nome_oficinas
Tabela oficinas_selecionadasid | nome_aluno | oficina1 | oficina2
Programa:1º - No programa eu tenho um formulário de cadastro, com os campos descritos: nome_aluno | oficina1 | oficina2, onde oficina1 seria a oficina de 1º lugar q a pessoa quer fazer, e oficina2 de 2º lugar. Bom a parte de cadastro esta fazendo certinho.
2º - Depois o sistema faz o seguinte: Soma o total de alunos em determinada oficina e divide pela metade, ou seja, caso tenha 20 alunos na oficina PHP por exemplo, o sistema deve dividir esse numero por 2 e exibindo 10 alunos para fazer a oficina na 4ª feira e o restante na 5ª feira. Pode acontecer tb de ter 21 alunos, o sistema joga 10 na 4ª e os outros 11 na 5ª feira ou o contrário. Isso o sistema tb esta fazendo de forma correta.
3º - Como disse acima a pessoa deve se cadastrar em 2 oficinas. Porém pode acontecer de uma pessoa cair pra realizar as duas oficinas no mesmo dia, esse é o meu problema. Não estou conseguindo fazer essa parte. Por exemplo a pessoa(Maria) se cadastrou para as oficinas: PHP e MySQL, e na hora da exibição dos nomes por curso, o nome Maria aparece para realizar as duas oficinas na 4ª feira, sendo que as duas oficinas são realizadas no mesmo horario. Tenho q verificar se o nome de Maria esta sendo exibido na 4ª feira e inverter, ou seja, jogar ela para a 5ª feira. Oq eu fiz esta invertendo, porém ele joga a comparação na tela.
Para exibir os nomes tenho um select com as opções de oficinas, onde selecionando a oficina PHP todos os nomes serão exibidos em seus respectivos lugares, metade na 4ª e a outra metade na 5ª feira.
Vejam como eu fiz:
include "include/conexao.php"; $oficinas = $_POST['oficinas']; echo $oficinas; if(!empty($oficinas)) { $sql = "select nome, nome_oficina, oficina1, count(*) from oficinas inner join oficinas_selecionadas on oficinas.idoficinas=oficinas_selecionadas.oficina1 where oficina1='$oficinas' or oficina2='$oficinas'group by nome, nome_oficina, oficina1"; $rs = mysql_query($sql,$con) or die (mysql_error()); ?> while($linha = mysql_fetch_array($rs)) { $arrayPessoas[] = $linha['nome']; // Coloca os nomes dentro de um array $nome_bd = $linha['nome']; $nome_oficina = $linha['oficinas']; //echo $nome_oficina; } $quantidadePessoas = count($arrayPessoas); // Conta a quantidade de nomes existentes dentro do array "$arrayPessoas" $divisaoPessoas = $quantidadePessoas/2; // Divide a quantidade existente no array por 2 $quartaFeira = ceil($divisaoPessoas); // Arredonda o resultado da divisão para cima $pessoasRestantes = $quantidadePessoas - $quartaFeira; // Não está sendo usado em lugar nenhum. Coloquei apenas por colocar ?> Oficina Temática: - <strong class='bbc'>Quarta-Feira</strong> // FOR quarta-feira for($i = 0; $i < $quartaFeira; $i++) { $arrayQuartaFeira[] = $arrayPessoas[$i]; // Guarda os nomes deste dia em um array para comparação no próximo array deste dia echo htmlentities(($arrayPessoas[$i]), ENT_QUOTES, "UTF-8").''; } echo""; ?> Oficina Temática: - <strong class='bbc'>Quinta-Feira</strong> // FOR quinta-feira for($i = $quartaFeira; $i < $quantidadePessoas; $i++) { // Guarda os nomes deste dia em um array para comparação no próximo array deste dia $arrayQuintaFeira[] = $arrayPessoas[$i]; echo htmlentities(($arrayPessoas[$i]), ENT_QUOTES, "UTF-8").''; } ?> echo""; $oficinas = $_POST['oficinas']; echo $oficinas; $result = mysql_query("SELECT * FROM oficinas_selecionadas where oficina2 = '$oficinas' or oficina1 = '$oficinas'"); $arrayPessoas2 = array(); $arrayQuartaFeira2 = array(); $arrayQuintaFeira2=array(); while($linha = mysql_fetch_array($result)) { $arrayPessoas2[] = $linha['nome']; // Coloca os nomes dentro de um array $nome_bd = $linha['nome']; $nome_oficina = $linha['oficinas']; } $i = 0; foreach($arrayPessoas2 as $valor) { if($i % 2) { if(!in_array($valor, $arrayQuartaFeira)) //verifica se o nome atual existe no array de quarta-feira { $arrayQuartaFeira2[] = $valor; } else { $arrayQuintaFeira2[] = $valor; } } else { if(!in_array($valor, $arrayQuintaFeira)) //verifica se o nome atual existe no array de quinta-feira { $arrayQuintaFeira2[] = $valor; } else { $arrayQuartaFeira2[] = $valor; } } $i++; } foreach($arrayQuartaFeira2 as $nomeAluno) { echo $nomeAluno.""; } echo""; foreach($arrayQuintaFeira2 as $nomeAluno) { echo htmlentities (($nomeAluno), ENT_QUOTES, "UTF-8").""; } ?> }//fim do if mysql_close($con);?>
E vejam tb a imagem de exibição com a inversão para um determinado aluno:
Porém não é exatamente isso q eu quero.
Tenho um select com as seguintes opções de oficinas para consulta:
Selecione PHP MySQL JSP PostGre Flash Dreamweaver
Qnd seleciono PHP por exemplo ele exibe os alunos conforme dito acima, por exemplo Maria. Dps qnd seleciono MySQL, se a Maria tb estiver nessa oficina, o sistema deve verificar se na oficina anterior ela esta selecionada para realizar a oficina na quarta ou quinta, se na oficina de MySQl ela estiver para realizar na 5ª por exemplo e na oficina de PHP tb na 5ª, o sistema deve realizar a inversão, jogando uma das oficinas para 4ª feira.
Alguém pode me ajudar por favor.....sou iniciante e estou com dificuldades de fazer isso.
Vc entendeu doq preciso? Se vc puder me ajudar...eu preciso entregar isso e simplesmente travei aqui.....