grafilho 0 Denunciar post Postado Novembro 15, 2010 Olá pessoal sou iniciante e preciso de uma ajuda. Tenho 3 tabelas. Tabela Escola com os campos (codigo da escola e nome da escola) cod_escola: nom_escola: Tabela Aluno com os campos (codigo do aluno, nome do aluno e sexo do aluno) cod_aluno: nom_aluno: sex_aluno: Tabela Medidas (peso do aluno, altura do aluno, envergadura do aluno) peso_aluno: alt_aluno: env_aluno: Gostaria de que na consulta feita pudesse visualizar os registros inseridos nos campos: cod_aluno,nom_aluno,nom_escola,peso_aluno,alt_aluno e env_aluno. Estou usando BD MySql. (obs: já li sobre chave primária e chave estrangeira para relacionar as tabelas só que na condição de iniciante infelizmente nao consegui resultado satisfatório. Agradeço atecipadamente pela ajuda) Compartilhar este post Link para o post Compartilhar em outros sites
h4v3st 1 Denunciar post Postado Novembro 15, 2010 boa tarde grafilho. Primeiramente voce precisa melhorar a estrutura das suas tabelas. Na sua tabela alunos, voce precisa adicionar qual escola o aluno estuda. Crie um campo chamado cod_escola na tabela de alunos e relacione (chave estrangeira): ALTER TABLE aluno ADD FOREIGN KEY (cod_escola) REFERENCES escola(cod_escola); NA tabela medidas a mesma coisa, precisa referenciar qual aluno possui aquelas medidas, exemplo: ALTER TABLE medidas ADD FOREIGN KEY (cod_aluno) REFERENCES aluno(cod_aluno); Faça isso primeiramente e depois veja como fazer sua consulta. Manual JOIN MySQL Compartilhar este post Link para o post Compartilhar em outros sites
grafilho 0 Denunciar post Postado Novembro 16, 2010 Olá Caio! Agradeço pela informação prestada e informo que a mesma contribuiu com êxito para realizar minha intenção. No entanto,como faço para obter informações somente de um aluno? Como resultante da tua indicação aparecem as informações de todos os alunos cadastrados e as vêzes queremos as informações somente de um determinado aluno. Justifico tal pergunta pelo fato de que ao banco de dados serão acrescidas outras variáveis a partir deste exemplo. <?php require_once('../Connections/con_fichamento.php'); ?> <?php $maxRows_Recordset1 = 10; $pageNum_Recordset1 = 0; if (isset($HTTP_GET_VARS['pageNum_Recordset1'])) { $pageNum_Recordset1 = $HTTP_GET_VARS['pageNum_Recordset1']; } $startRow_Recordset1 = $pageNum_Recordset1 * $maxRows_Recordset1; mysql_select_db($database_con_fichamento, $con_fichamento); $query_Recordset1 = "SELECT medida_aluno_teste.codigo_aluno, medida_aluno_teste.codigo_escola, medida_aluno_teste.nome_aluno, medidas_crescimento_teste.serie, medidas_crescimento_teste.semestre FROM medida_aluno_teste, medidas_crescimento_teste WHERE medida_aluno_teste.codigo_aluno = medidas_crescimento_teste.codigo_aluno "; $query_limit_Recordset1 = sprintf("%s LIMIT %d, %d", $query_Recordset1, $startRow_Recordset1, $maxRows_Recordset1); $Recordset1 = mysql_query($query_limit_Recordset1, $con_fichamento) or die(mysql_error()); $row_Recordset1 = mysql_fetch_assoc($Recordset1); if (isset($HTTP_GET_VARS['totalRows_Recordset1'])) { $totalRows_Recordset1 = $HTTP_GET_VARS['totalRows_Recordset1']; } else { $all_Recordset1 = mysql_query($query_Recordset1); $totalRows_Recordset1 = mysql_num_rows($all_Recordset1); } $totalPages_Recordset1 = ceil($totalRows_Recordset1/$maxRows_Recordset1)-1; ?> Compartilhar este post Link para o post Compartilhar em outros sites
h4v3st 1 Denunciar post Postado Novembro 16, 2010 grafilho a cláusula WHERE faz o filtro, vamos supor que voce quer as informações do aluno de código número 10. SELECT m.peso_aluno, m.alt_aluno, m.env_aluno FROM aluno a, medida m WHERE m.cod_aluno = a.cod_aluno and m.cod_aluno = 10; Note que eu especifiquei que quero as informacoes do aluno com o código 10, na clausula where. Qualquer outra duvida volte a postar. Compartilhar este post Link para o post Compartilhar em outros sites
grafilho 0 Denunciar post Postado Novembro 18, 2010 Olá Caio. Resultado obtido com êxito através das tuas informações. Pela inexperiência, fiz várias consultas sobre o assunto e não conseguia entender como trabalhar com chave estrangeira. Através da modelagem proposta e da tua colaboração consegui entender melhor o uso do trabalho com duas ou mais tabelas. Não querendo abusar mas já abusando, gostaria de armazenar a foto do aluno. Devo elaborar uma outra tabela com os campos: código do aluno e campo (BLOB) para armazenar a foto? Notifico que já tentei algumas indicações e consegui visualizar a foto. Mais uma vez, grato por tua paciência e colaboração. Compartilhar este post Link para o post Compartilhar em outros sites
h4v3st 1 Denunciar post Postado Novembro 18, 2010 grafilho boa tarde, que bom que deu certo. É o seguinte: se você for armazenar somente uma foto por aluno basta criar um campo na tabela alunos. Caso seja várias fotos por aluno, faz igual você disse, cria-se uma nova tabela com um campo pra armazenar a foto e o código do aluno. Qualquer dúvida retorne ao tópico. Compartilhar este post Link para o post Compartilhar em outros sites
grafilho 0 Denunciar post Postado Novembro 18, 2010 Caio, desculpe..fui traido por um erro de digitação. Na realidade eu NÃO consegui visualizar a foto e mais uma vez obrigado e se puder ajudar ..agradeço Compartilhar este post Link para o post Compartilhar em outros sites
h4v3st 1 Denunciar post Postado Novembro 18, 2010 grafilho, a foto voce vai fazer o select normal.. como nos outros atributos. Na hora de exibir que voce vai utilizar php e html pra mostrar a foto. Na sua tabela é mais viável você salvar o caminho da foto do servidor no banco de dados e não a foto. Um exemplo: <?php $query = mysql_query("SELECT caminho_foto FROM aluno WHERE aluno = 1"); $a = mysql_fetch_array($query); ?> <img src="<?php echo $a["caminho_foto"]; ?>" /> Compartilhar este post Link para o post Compartilhar em outros sites