Jump to content


Photo

Controle De Alunos Por Professor


  • Faça o login para participar
10 replies to this topic

#1 pl@ytim3

pl@ytim3

    Novato no fórum

  • Usuários
  • 8 posts
  • Sexo:Masculino

Posted 13/05/2008, 21:47

tenho duas tb, professores e alunos.
preciso ter um controle de alunos por professor, ou seja, quero exibir :

Professor Fulano possui :
Alunos Joao,Maria,Jose,Marcela,Benedito,etc...

Professor Beltrano possui:
Alunos Marcelo,Antonia,Elaine,Rosemaria,etc...

como poderia fazer isso ?

desde de já agradeço a ajuda

#2 dgt

dgt

    diego^SCFC

  • Usuários
  • 281 posts
  • Sexo:Masculino
  • Localidade:Recife-PE
  • Interesses:Java, Delphi, PHP, SQL, Modelagem de Dados, CSS, Lógica de Programação (Algoritmos), Teoria em Banco de Dados

Posted 13/05/2008, 22:49

Crie uma chave estrangeira na tabela dos alunos, onde armazerá o ID do professor.

Falei grego? Se não entendeu, explico melhor exemplificando.
Posted Image

#3 MarcusMarinho

MarcusMarinho

    Turista

  • Usuários
  • 59 posts
  • Sexo:Não informado

Posted 13/05/2008, 22:58

Em meu ponto de vista não seria um relacionamento direto entre aluno e professor e sim, Aluno -> Materia ou Turma, Professor -> Materia ou Turma, como cada caso é um caso , acho melhor você quebrar esse relacionamento em uma outra tabela.


Aluno
Professor
Aluno x Professor

Assim você pode ter ate um historico do aluno com o professor.


Seria minha analise. teria que ver seu problema e sua solução pra analisar, mas faria dessa forma.

Abraços

#4 MarcoviZ

MarcoviZ

    ubuntu for human being

  • Usuários
  • 1137 posts
  • Sexo:Não informado

Posted 15/05/2008, 15:23

pode depender, por ex na minha escola tem mais de um prof para cada matéria...
[]'s

#5 pl@ytim3

pl@ytim3

    Novato no fórum

  • Usuários
  • 8 posts
  • Sexo:Masculino

Posted 15/05/2008, 20:38

Crie uma chave estrangeira na tabela dos alunos, onde armazerá o ID do professor.

Falei grego? Se não entendeu, explico melhor exemplificando.


Como assim , vc poderia então me explicar melhor ?

#6 dgt

dgt

    diego^SCFC

  • Usuários
  • 281 posts
  • Sexo:Masculino
  • Localidade:Recife-PE
  • Interesses:Java, Delphi, PHP, SQL, Modelagem de Dados, CSS, Lógica de Programação (Algoritmos), Teoria em Banco de Dados

Posted 16/05/2008, 01:39

A base é essa..

Inserir mais um campo na tabela de Alunos:
ALTER TABLE Alunos
ADD ProfessorID int not null

Inserindo o campo como chave estrangeira (Só permite armazenar informações que contenha em outro campo de outra tabela)
ALTER TABLE Alunos
ADD CONSTRAINT Foreign Key (ProfessorID) REFERENCES Professores(ProfessorID)

E no SELECT:
SELECT * FROM Alunos WHERE ProfessorID='$ProfessorID'

Posted Image

#7 pl@ytim3

pl@ytim3

    Novato no fórum

  • Usuários
  • 8 posts
  • Sexo:Masculino

Posted 18/05/2008, 19:09

ok, muito obrigado pela atenção, vou ver se consigo e depois já retorno

ok, valeu pela ajuda, mas agora se vc puder tbem
iluminar mais uma dúvida , agradeço antecipado,
como poderia fazer para montar uma exibição tipo:
listar o professor (pela "professorID") e exibir
todos alunos que contenham o ID dele cadastrada na
ficha, tenho um sistema de busca assim:

Esse é o formulário de busca que tenho:(modelo usado em outros formularios que nesta caso estou usando por enquanto)
<HTML>
<HEAD>
 <TITLE>Busca</TITLE>
</HEAD>
<BODY>
<?
<form name="form1" method="post" action="listando_dados.php">
<p><font face="Verdana">Digite o ID do Professor</p> ou o Nome Completo:<i>
<input name="busca" type="text" id="busca2" size="30">
<input type="submit" name="Submit" value="Ok"></p>
?>
</BODY>
</HTML>

E esse é o resultado exibido:
<HTML>
<HEAD>
 <TITLE>Listando Dados</TITLE>
</HEAD>
<BODY>
<?
$busca = $_POST['busca'];
$y = mysql_query("SELECT * FROM alunos WHERE professorid = '$busca' OR nome = '$busca'");
while($x = mysql_fetch_array($y)){
echo'
<p><font face="Arial" size="2"><b>ID do Professor:</b>&nbsp; '.$x['professorid'].'</font></p>
<p><font face="Arial" size="2"><b>Turma:</b>&nbsp;'.$x['turma'].'</font></p>
<p><font face="Arial" size="2"><b>Nome do Aluno:</b>&nbsp; '.$x['nome_aluno'].'</font></p>
?>
</BODY>
</HTML>

Então será que vc poderia me ajudar adaptar esse outro código para a tabela Alunos? :

<HTML>
<HEAD>
 <TITLE>Busca Tipo 2</TITLE>
</HEAD>
<BODY>
<?
  $resultado = mysql_query ("SELECT * FROM alunos WHERE professorid='1' order by nome");
$linhas = mysql_num_rows ($resultado);

// Exibe os dados
echo "
<table width=100% border=1 cellpadding=0 cellspacing=0 bordercolor=#CCCCCC>
  <tr>
	<td colspan=3 bgcolor=#CCCCCC><div align=center></div></td>
  </tr>
  <tr>
	<td width=12% bgcolor=#EAEAEA><div align=center><font face=verdana size=2><i>ID Professor</i></div></td>
	<td width=33% bgcolor=#EAEAEA><div align=center><font face=verdana size=2><i>Nome</i></div></td>
	<td width=12% bgcolor=#EAEAEA><div align=center><font face=verdana size=2><i>Turma</i></div></td>
	  </tr>";
for ($i=0; $i<$linhas; $i++)
	{
		$registro = mysql_fetch_row($resultado);
		echo "
  <tr>
	<td><div align=center>$registro[1]</div></td>
	<td><div align=left>$registro[2]</div></td>
	<td><div align=center>$registro[3]</div></td>

  </tr>
	 ";
   }


echo "
  <tr>
	<td colspan=3>&nbsp;</td>
  </tr>
</table>
";

?>
</BODY>
</HTML>

Edição feita por: pl@ytim3, 18/05/2008, 19:15.


#8 dgt

dgt

    diego^SCFC

  • Usuários
  • 281 posts
  • Sexo:Masculino
  • Localidade:Recife-PE
  • Interesses:Java, Delphi, PHP, SQL, Modelagem de Dados, CSS, Lógica de Programação (Algoritmos), Teoria em Banco de Dados

Posted 19/05/2008, 01:58

Opa.. beleza?

Percebi que na sua estrutura possui 'Turma'. E aí o critério já muda na modelagem das tabelas.

Veja uma análise:

- 1 Professor pode dar aula em N Turmas e 1 Turma pode ter N Professores.
- 1 Aluno pode ter N Professores e 1 Professor pode ter N Alunos.

E isso pode ir mais além..
Posted Image

#9 pl@ytim3

pl@ytim3

    Novato no fórum

  • Usuários
  • 8 posts
  • Sexo:Masculino

Posted 19/05/2008, 18:22

opá , desculpe, esse era um código antigo que tinha em minha pasta, pode tirar "turma" do exemplo e vê se vc consegue me ajudar por favor.

dai fica só :
professor e nome(no caso do Aluno)

#10 dgt

dgt

    diego^SCFC

  • Usuários
  • 281 posts
  • Sexo:Masculino
  • Localidade:Recife-PE
  • Interesses:Java, Delphi, PHP, SQL, Modelagem de Dados, CSS, Lógica de Programação (Algoritmos), Teoria em Banco de Dados

Posted 20/05/2008, 07:02

Busca.php
Escolha o nome do professor: <SELECT name="BuscaProfessor" onchange="if(options[selectedIndex].value) window.open(options[selectedIndex].value,'mainFrame')">
<option></option>
<?
include("config.php"); // CONEXÃO BD
$consulta = mysql_query("SELECT * FROM Professores ORDER BY NomeProfessor ASC");
while($x = mysql_fetch_assoc($consulta)){
$NomeProfessor = $x["NomeProfessor"];
$ProfessorID = $x["ProfessorID"];
?>
<option value="resultado.php?ProfessorID=<? echo $ProfessorID; ?>"><? echo $NomeProfessor; ?></option>
<?
}
?>
</SELECT>

Resultado.php
<?
include("config.php"); // CONEXÃO BD
$ProfessorID = $_GET["ProfessorID"];

if ($ProfessorID != "") {
$sql = mysql_query("SELECT * FROM Professores WHERE 

ProfessorID='$ProfessorID'");
while($x = mysql_fetch_assoc($sql)){
$NomeProfessor = $x["NomeProfessor"];
}
echo "<b>Professor:</b> $NomeProfessor<br><br>";

$consulta = mysql_query("SELECT * FROM Alunos WHERE 

ProfessorID='$ProfessorID' ORDER BY NomeAluno ASC");
while($x = mysql_fetch_assoc($consulta)){
$NomeAluno = $x["NomeAluno"];
echo "$NomeAluno <br>";
}
}
?>

Posted Image

#11 pl@ytim3

pl@ytim3

    Novato no fórum

  • Usuários
  • 8 posts
  • Sexo:Masculino

Posted 24/05/2008, 16:32

ok, valeu mesmo vc me ajudou muito !!!!




0 user(s) are reading this topic

0 membro(s), 0 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq