Ir para conteúdo

POWERED BY:

Arquivado

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

Mehow

[Resolvido] Como exibir esses dados no Datagrid?

Recommended Posts

Quero exibir os nomes dos alunos, ao lado as notas de cada bimestre. Porém as notas coloquei em uma tabela separada onde é identificada pela id_aluno,id_serie e id_materia.

o problema é que como faço o Join das tabelas tem que ter dados na tabela notas, então só me retorna os dados que isneri manualmente

 

Quero saber uma maneira de como vou preencher esses dados, a medida que eu der o insert os dados ficam gravados no BD e tbm ficam sendo exibidos para alterar,,, que nem um data grind mesmo

 

tem como fazer mantendo as notas em outra tabela ou devo colocar as notas e bimestre tudo na tabela do aluno?

 

peguei um datagrid aki e depois vou fuçar nele, o problema por enquanto é sobre os dados

essa é a consulta que uso para me trazer os dados

 

$sql = mysql_query("
SELECT n.id_nota,a.codigo,a.nome_aluno,
n.bimestre1, n.bimestre2, n.bimestre3, n.bimestre4
FROM notas n
INNER JOIN aluno a ON
n.aluno_codigo = a.codigo
INNER JOIN materia m ON
m.id_materia = n.id_materia 
WHERE a.id_serie = '$idSerie'  group by a.nome_aluno")or die(mysql_error());

a tela onde quero entrar com os dados é essa, ao invés de aparecer todos os alunos para eu digitar as notas só aparece o que eu cadastrei manualmente..

o que devo fazer?

 

eu tava pensando que se eu juntar todas as notas e faltas na tabela aluno, quando eu mudar ele de série, as faltas e notas vão ir para a outra série tbm...móh problemaImagem Postada

Compartilhar este post


Link para o post
Compartilhar em outros sites

o problema é que como faço o Join das tabelas tem que ter dados na tabela notas, então só me retorna os dados que isneri manualmente

 

Nesse caso, você tera que usar LEFT|RIGHT JOIN.. em vez de usar INNER, no teu caso LEFT, pelo que vi por cima da consulta.

Compartilhar este post


Link para o post
Compartilhar em outros sites

acabei de testar aqui o LEFT JOIN e deu certo http://forum.imasters.com.br/public/style_emoticons/default/natal_biggrin.gif , eu nunca tinha usado esse tipo de consulta, dei uma pesquisa e deu certo

a solução era a coisa mais simples do mundo e eu perdi tempo fazendo e refazendo tudo quebrando a cabeça

putz!

 

mas eh assim mesmo rsrs

 

agora vo fazer o teste se vai ta inserindo e talz

 

 

valew cara!!

abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim, a ideia eh essa.. testou ?

so confira ai, se eh LEFT JOIN ou RIGHT JOIN.. olhei muito por cima..

 

outra alternativa, seria ainda usar sei la.. um IF..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim, a ideia eh essa.. testou ?

so confira ai, se eh LEFT JOIN ou RIGHT JOIN.. olhei muito por cima..

 

outra alternativa, seria ainda usar sei la.. um IF..

 

testei, porém achei um problema agora que ele só exibe o nome do aluno se eu tiver cadastrado ao menos o ID dele na tabela de notas, daí vou testar esse RIGHT JOIN agora... qualquer cosia toda vez que eu registrar um novo aluno eu registro o ID dele na tabela de notas e depois quando inserir a nota ele da um update

 

vo testar aki...

Compartilhar este post


Link para o post
Compartilhar em outros sites

O correto é utilizar LEFT | RIGHT OUTER JOIN, que vai trazer, caso não exista, o campo preenchido com NULL.

 

http://dev.mysql.com/doc/refman/4.1/pt/join.html

 

Como a dúvida é no MySQL, vou mover para lá.

 

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

O correto é utilizar LEFT | RIGHT OUTER JOIN, que vai trazer, caso não exista, o campo preenchido com NULL.

 

http://dev.mysql.com/doc/refman/4.1/pt/join.html

 

Como a dúvida é no MySQL, vou mover para lá.

 

Tópico Movido

PHP http://forum.imasters.com.br/public/style_emoticons/default/seta.gif MySQL

 

estou com mais um problema...

os nomes dos alunos aparecem normal, só que quando insiro as notas está aparecendo nas outras matérias.. por exemplo:

 

se eu entro no 3º Colegial insiro as notas de português, quando entro na parte de matemática ele exibe as notas que coloquei na parte de português

 

a consulta que estou usando é essa

SELECT a.codigo,a.nome_aluno,
m.descricao as materia,
n.bimestre1,n.faltas1, n.bimestre2,n.faltas2, n.bimestre3,n.faltas3, n.bimestre4,n.faltas4
FROM notas n
RIGHT JOIN aluno a ON
a.codigo = n.aluno_codigo
LEFT JOIN materia m ON
n.id_materia = m.id_materia
WHERE a.id_serie = '$idSerie' GROUP BY a.nome_aluno

já tentei colocar ali no WHERE "AND m.id_materia = '$idMat', mas daí não traz nenhum registro

Compartilhar este post


Link para o post
Compartilhar em outros sites

Usa só o JOIN, sem right e left. Se não resolver, posta a estrutura das tabelas, como fica o resultado ao fazer a consulta e como você gostaria que ficasse.

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Usa só o JOIN, sem right e left. Se não resolver, posta a estrutura das tabelas, como fica o resultado ao fazer a consulta e como você gostaria que ficasse.

 

Carlos Eduardo

 

eu inseri a nota do aluno de código 10 como se pode ver na imagem

Imagem Postada

 

 

Porém quando eu faço a consulta, a nota que inseri na matéria de Português (id 1) aparece tbm nas outras matérias do aluno

Imagem Postada

 

 

Consulta

SELECT
a.codigo,
a.nome_aluno,
m.id_materia,m.descricao AS materia,
n.bimestre1,
n.faltas1,
n.bimestre2,
n.faltas2,
n.bimestre3,
n.faltas3,
n.bimestre4,
n.faltas4
FROM
aluno a
LEFT JOIN notas n ON (n.aluno_codigo=a.codigo)
JOIN materia m
WHERE a.id_serie = 8

mesmo eu colocando na clausula WHERE para separar por materia, aparece sempre a nota que inseri na outra materia

 

 

Estrutura das tabelas

Imagem Postada

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.