Ir para conteúdo

POWERED BY:

Arquivado

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

Edson L. Zimmermann

[Resolvido] Dividar alunos por sala

Recommended Posts

Olá,

 

Estou tentando fazer o seguinte, tenho digamos 100 alunos para uma prova, e preciso dividir eles em X salas disponíveis.

 

Já fiz diversas tentativas mais não consegui fazer isso funcionar direito, porque quero imprimir na tela da seguinte forma:

 

Sala 1:

Nomes...

 

Sala 2:

Nomes...

 

até encerrar a quantidade de inscritos.

 

gostaria de alguma sugestão porque já tentei o que eu sabia.

 

Obrigado...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom até aqui em consegui.

 

O que não estou conseguindo é juntar a consulta com o resultado.

 

<?php

for($s=1; $s <= $salas; $s++)

{

echo "Sala: ".$s."<br>";

for($i=1; $i <= $fim; $i++)

{

echo $i."<br>";

}

}

?>

 

Compartilhar este post


Link para o post
Compartilhar em outros sites


<?php

$qtde = 100;//quantidade de alunos

$salas = 7;//quantidade de salas

$alunos_sala = floor( $qtde / $salas ); //parte inteira da divisão

$sobra = $qtde % $salas;//pega a sobra da divisão

for( $i = 1; $i <= $salas; $i++ ){//loop para salas

echo "<font color=red>Sala: {$i}</font><br>";

if( $sobra > 0 ){//se existir sobra

$qtde_sala = $alunos_sala + 1;//acrescenta mais um aluno a sala

$sobra--;//decrementa a sobra

}else

$qtde_sala = $alunos_sala;

for( $j = 1;$j <= $qtde_sala; $j++ ){//loop para alunos

echo "<li>Aluno: {$j}</li><br>";

}

}

?>

como você está fazendo a consulta??

Compartilhar este post


Link para o post
Compartilhar em outros sites

<?php
$qtde = 100;//quantidade de alunos
$salas = 7;//quantidade de salas
$alunos_sala = floor( $qtde / $salas ); //parte inteira da divisão
$sobra = $qtde % $salas;//pega a sobra da divisão
for( $i = 1; $i <= $salas; $i++ ){//loop para salas
	echo "<font color=red>Sala: {$i}</font><br>";
	if( $sobra > 0 ){//se existir sobra
		$qtde_sala = $alunos_sala + 1;//acrescenta mais um aluno a sala
		$sobra--;//decrementa a sobra
	}else
		$qtde_sala = $alunos_sala;
	for( $j = 1;$j <= $qtde_sala; $j++ ){//loop para alunos
		echo "<li>Aluno: {$j}</li><br>";		
	}
}
?>
como você está fazendo a consulta??

 

Legal...

 

entendi...

 

a consulta eu to fazendo assim:

 

$sCandidatos = "SELECT * FROM candidatos_concursos
LEFT JOIN candidatos ON candidatos.Id = candidatos_concursos.candidato_id
LEFT JOIN cargos_concursos ON cargos_concursos.Id = candidatos_concursos.cargo_id
WHERE candidatos_concursos.concurso_id = $id
ORDER BY cargo_id";

Só não entendi como juntar isso com o código que você fez.

 

+ obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites


<?php

/*o ideal é ordenar os alunos por nome que fica mais fácil

para colocar os alunos nas salas por ordem alfabética*/

//outra coisa, em vez de todos *, escolha somente os campos que vai utilizar

$sCandidatos = "SELECT

*

FROM

`candidatos_concursos` cc

LEFT JOIN

`candidatos` c

ON

c.`Id` = cc.`candidato_id`

LEFT JOIN

`cargos_concursos` cco

ON

cco.`Id` = cc.`cargo_id`

WHERE

cc.`concurso_id` = $id

ORDER BY

`cargo_id`";

//executa a query

$sql = mysql_query($sCandidadtos) or die(mysql_error());

$qtde = mysql_num_rows($sql);//quantidade de alunos

$salas = 7;//quantidade de salas

$alunos_sala = floor( $qtde / $salas ); //parte inteira da divisão

$sobra = $qtde % $salas;//pega a sobra da divisão

for( $i = 1; $i <= $salas; $i++ ){//loop para salas

$j = 0;//zera

echo "<font color=red>Sala: {$i}</font><br>";

if( $sobra > 0 ){//se existir sobra

$qtde_sala = $alunos_sala + 1;//acrescenta mais um aluno a sala

$sobra--;//decrementa a sobra

}else

$qtde_sala = $alunos_sala;

while( $j < $qtde_sala){//loop para alunos

$linha = mysql_fetch_assoc($sql);//pega a linha

echo "<li>Aluno: {$linha['nome']}</li><br>";//imprime o nome

$j++;//incrementa

}

}

?>

adapte a sua necessidade

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.