Ir para conteúdo

POWERED BY:

Arquivado

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

eusoucarlos

select * from O QUE?

Recommended Posts

e ae masters, beleza? preciso de uma ajuda de vocês!!

tenho um cadastro de materiais em uma tabela no mysql e um cadastro de alunos em outra tabela do mysql.

 

nas duas tem um campo chamado curso

 

preciso fazer um esquema q o select * from materiais mostre somente os valores de qdo o curso da tabela aluno for igual ao valor do curso da tabela materiais

 

o $_SESSION['aluno'] pega pelo include do arquivo alunorestrito.php, tá normal. a conexão com o banco de dados pelo include config.php tb tá normal, pq ele consegue pegar o nome do curso do aluno pra exibir na tela. não sei o q fazer..

 

meu código tá assim: (a parte vermellha q nao sei o q colocar, otimizações do código são bem vindas!) valeu ae!! abraço..

 

 

<?php
    include "config.php";
    include "alunorestrito.php";
?>
<br />
  <table width="100%" border="0">
    <tr class="negrito">
      <td colspan="3" align="center"><span class="normal12vermelho">Exibindo materiais </span>
        <?php
            $mail=$_SESSION['aluno'];
            $seleciona=mysql_query("select curso from alunos WHERE mail='$mail'");
            while($x=mysql_fetch_array($seleciona))
                {
                    echo "<span class='negrito12vermelho'>$x[curso]</span><br>";
                
            echo"</td>
                      </tr>
                    <tr>
                      <td colspan='3' align='center'> </td>
                    </tr>
                    <tr class='negrito12amarelo'>
                      <td width='11%' class='negrito12vermelho'>Aula:</td>
                      <td width='52%' class='negrito12vermelho'>Título:</td>
                    </tr>";
}
    $selecionamat=mysql_query("select * from materiais where curso=[b][color="#FF0000"]ESSA PARTE Q NAO SEI O Q COLOCA"[/color][/b]);
    while($a=mysql_fetch_array($selecionamat))


            {
                echo '
                  <tr>
                    <td>$a[numaula]</td>
                    <td><a href=controle/$a[pasta]$a[filename]>$a[titulo]</a></td>
                    </tr>';
              }
?></table>

Compartilhar este post


Link para o post
Compartilhar em outros sites

utilizando a sua teoria vista pelo código isso serve, senão manda a estrutura das tabelas alunos e materiais

select m.* from materias m inner join alunos a on a.curso = m.curso where a.mail='$mail'

Compartilhar este post


Link para o post
Compartilhar em outros sites

utilizando a sua teoria vista pelo código isso serve, senão manda a estrutura das tabelas alunos e materiais

select m.* from materias m inner join alunos a on a.curso = m.curso where a.mail='$mail'

valeu pela resposta, mas continua retornando em branco!!

 

estruturas:

-- 
-- Estrutura da tabela `alunos`
-- 

CREATE TABLE `alunos` (
  `id` int(11) NOT NULL auto_increment,
  `nome` varchar(255) NOT NULL,
  `mail` varchar(255) NOT NULL,
  `senha` varchar(255) NOT NULL,
  `fixo` varchar(255) NOT NULL,
  `cel` varchar(255) NOT NULL,
  `sexo` varchar(255) NOT NULL,
  `endereco` varchar(255) NOT NULL,
  `numero` varchar(255) NOT NULL,
  `cep` varchar(255) NOT NULL,
  `complemento` varchar(255) NOT NULL,
  `cidade` varchar(255) NOT NULL,
  `estado` varchar(255) NOT NULL,
  `escolaridade` varchar(255) NOT NULL,
  `curso` varchar(255) NOT NULL,
  `status` varchar(255) NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=4 ;

-- 
-- Estrutura da tabela `materiais`
-- 

CREATE TABLE `materiais` (
  `id` int(11) NOT NULL auto_increment,
  `titulo` varchar(255) NOT NULL,
  `numaula` varchar(255) NOT NULL,
  `curso` varchar(255) NOT NULL,
  `pasta` varchar(255) NOT NULL,
  `filename` varchar(255) NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=14 ;

Compartilhar este post


Link para o post
Compartilhar em outros sites

existe a tabela curso??

ou você usa o nome do curso só

 

existe sim, como o nome cursos mesmo

na hora que vai cadastrar o material e o aluno, coloquei um combobox que busca o titulo do curso nessa tabela:

 

-- 
-- Estrutura da tabela `cursos`
-- 

CREATE TABLE `cursos` (
  `id` int(11) NOT NULL auto_increment,
  `titulo` varchar(255) NOT NULL,
  `inicio` varchar(255) NOT NULL,
  `descricao` text NOT NULL,
  `carga` text NOT NULL,
  `duracao` text NOT NULL,
  `material` text NOT NULL,
  `encontros` text NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=3 ;

Compartilhar este post


Link para o post
Compartilhar em outros sites

para ficar mais bem feito, crie as tabelas da seguinte forma

 

tabela curso

 

retirei essa linha `material` text NOT NULL,

CREATE TABLE `cursos` (
  `id` int(11) NOT NULL auto_increment,
  `titulo` varchar(255) NOT NULL,
  `inicio` varchar(255) NOT NULL,
  `descricao` text NOT NULL,
  `carga` text NOT NULL,
  `duracao` text NOT NULL,  
  `encontros` text NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=3 ;

tabela materiais

 

retirei essa linha `curso` varchar(255) NOT NULL,

CREATE TABLE `materiais` (
  `id` int(11) NOT NULL auto_increment,
  `titulo` varchar(255) NOT NULL,
  `numaula` varchar(255) NOT NULL,
  `pasta` varchar(255) NOT NULL,
  `filename` varchar(255) NOT NULL, 
  PRIMARY KEY  (`id`)
  ) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=14 ;

inclua essa tabela que vai relacionar curso a materiais,

estou pensando na hipótese de um mesmo material poder ser utlizado em mais cursos

 

tabela curso_material

  `id_curso` int(11) NOT NULL,
  `id_material` int(11) NOT NULL, 
  PRIMARY KEY (`id_curso`,`id_material`)

tabela alunos

 

mudei essa linha `curso` varchar(255) NOT NULL, para essa `id_curso` int(11) NOT NULL, é melhor usar o id

 

CREATE TABLE `alunos` (
  `id` int(11) NOT NULL auto_increment,
  `nome` varchar(255) NOT NULL,
  `mail` varchar(255) NOT NULL,
  `senha` varchar(255) NOT NULL,
  `fixo` varchar(255) NOT NULL,
  `cel` varchar(255) NOT NULL,
  `sexo` varchar(255) NOT NULL,
  `endereco` varchar(255) NOT NULL,
  `numero` varchar(255) NOT NULL,
  `cep` varchar(255) NOT NULL,
  `complemento` varchar(255) NOT NULL,
  `cidade` varchar(255) NOT NULL,
  `estado` varchar(255) NOT NULL,
  `escolaridade` varchar(255) NOT NULL,
  `id_curso` int(11) NOT NULL, 
  `status` varchar(255) NOT NULL,
  PRIMARY KEY  (`id`)
  ) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=4 ;

agora para saber os materiais do aluno é só pesquisar pelo id do aluno assim

 

select m.* from materiais m inner join curso_material cm on m.id = cm.id_material 
inner join cursos c on c.id = cm.id_curso inner join alunos a on a.id_curso = 
c.id where a.id = $id_aluno 

Compartilhar este post


Link para o post
Compartilhar em outros sites

ainda não testei o código q você postou agora, mas uma observação:

na tabela cursos, o campo material é pra dizer que material o curso vai utilizar, cd, apostila, filme, etc..

Compartilhar este post


Link para o post
Compartilhar em outros sites

aí ficou assim:

$selecionamat=mysql_query("select m.* from materiais m inner join curso_material cm on m.id = cm.id_material 
inner join cursos c on c.id = cm.id_curso inner join alunos a on a.id_curso = c.id where a.id = $id_aluno");
	while($a=mysql_fetch_array($selecionamat))
			{
				echo '
				  <tr>
					<td>$a[numaula]</td>
					<td><a href=controle/$a[pasta]$a[filename]>$a[titulo]</a></td>
			  	  </tr>';
  			}
?>

dá erro na linha do while($a...

 

ah.. será q não é pq a tabela curso_material tá sem valores cadastrados? o que eu insiro nela?

Compartilhar este post


Link para o post
Compartilhar em outros sites

ainda não testei o código q você postou agora, mas uma observação:

na tabela cursos, o campo material é pra dizer que material o curso vai utilizar, cd, apostila, filme, etc..

 

na tabela materiais você pode especificar isso

 

tpw adapta as tabelas as suas necessidades, posso ter entendido errado a forma que você utilizou

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

aí ficou assim:

$selecionamat=mysql_query("select m.* from materiais m inner join curso_material cm on m.id = cm.id_material 
inner join cursos c on c.id = cm.id_curso inner join alunos a on a.id_curso = c.id where a.id = $id_aluno");
	while($a=mysql_fetch_array($selecionamat))
			{
				echo '
				  <tr>
					<td>$a[numaula]</td>
					<td><a href=controle/$a[pasta]$a[filename]>$a[titulo]</a></td>
			  	  </tr>';
  			}
?>

dá erro na linha do while($a...

 

ah.. será q não é pq a tabela curso_material tá sem valores cadastrados? o que eu insiro nela?

 

a tabela curso_material tem q estar preencida para relacionar as duas tabelas, insere o id do curso e o id do material

 

tpw um curso pode ter vários materiais aí você insere o id do curso no campo id_curso e id do material no campo id_material

 

ae você repete o id do curso e varia o id do material até ter preenchido todos os materiais do curso

 

e usa assim

 

echo " <tr>
	<td>".$a[numaula]".</td>
	<td><a href=controle/".$a[pasta]."/".$a[filename]".>".$a[titulo]."</a></td>
       </tr>";

outra coisa você está atribuindo o id do aluno a variável $id_aluno???

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

 

aí ficou assim:

$selecionamat=mysql_query("select m.* from materiais m inner join curso_material cm on m.id = cm.id_material 
inner join cursos c on c.id = cm.id_curso inner join alunos a on a.id_curso = c.id where a.id = $id_aluno");
	while($a=mysql_fetch_array($selecionamat))
			{
				echo '
				  <tr>
					<td>$a[numaula]</td>
					<td><a href=controle/$a[pasta]$a[filename]>$a[titulo]</a></td>
			  	  </tr>';
  			}
?>

dá erro na linha do while($a...

 

ah.. será q não é pq a tabela curso_material tá sem valores cadastrados? o que eu insiro nela?

 

a tabela curso_material tem q estar preencida para relacionar as duas tabelas, insere o id do curso e o id do material

 

tpw um curso pode ter vários materiais aí você insere o id do curso no campo id_curso e id do material no campo id_material

 

ae você repete o id do curso e varia o id do material até ter preenchido todos os materiais do curso

 

e usa assim

 

echo " <tr>
	<td>".$a[numaula]".</td>
	<td><a href=controle/".$a[pasta]."/".$a[filename]".>".$a[titulo]."</a></td>
       </tr>";

outra coisa você está atribuindo o id do aluno a variável $id_aluno???

 

 

1 - como eu capturo a id_aluno?

2 - como eu insiro a id do curso e a id do material? visto que este sistema não serei eu o utilizador. preciso que isso seja possível de ser feito através de formulários simples.

3 - não entendi mt bem "tpw um curso pode ter vários materiais aí você insere o id do curso no campo id_curso e id do material no campo id_material

ae você repete o id do curso e varia o id do material até ter preenchido todos os materiais do curso"

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

 

aí ficou assim:

$selecionamat=mysql_query("select m.* from materiais m inner join curso_material cm on m.id = cm.id_material 
inner join cursos c on c.id = cm.id_curso inner join alunos a on a.id_curso = c.id where a.id = $id_aluno");
	while($a=mysql_fetch_array($selecionamat))
			{
				echo '
				  <tr>
					<td>$a[numaula]</td>
					<td><a href=controle/$a[pasta]$a[filename]>$a[titulo]</a></td>
			  	  </tr>';
  			}
?>

dá erro na linha do while($a...

 

ah.. será q não é pq a tabela curso_material tá sem valores cadastrados? o que eu insiro nela?

 

a tabela curso_material tem q estar preencida para relacionar as duas tabelas, insere o id do curso e o id do material

 

tpw um curso pode ter vários materiais aí você insere o id do curso no campo id_curso e id do material no campo id_material

 

ae você repete o id do curso e varia o id do material até ter preenchido todos os materiais do curso

 

e usa assim

 

echo " <tr>
	<td>".$a[numaula]".</td>
	<td><a href=controle/".$a[pasta]."/".$a[filename]".>".$a[titulo]."</a></td>
       </tr>";

outra coisa você está atribuindo o id do aluno a variável $id_aluno???

 

 

 

e ae victor, beleza?

como nao entendi mt bem suas alterações, fiz umas gambiarras e funcionou!!! tudo bem q ficou um pouco diferente do que eu queria, mas pelo menos funciona!! vlw pela ajuda!

 

<?php
	include "config.php";
	include "alunorestrito.php";
	$mat=$_POST['cxselectcurso'];
	$mail=$_SESSION['alunogauss'];
	$curso=mysql_query("select * from alunos where mail='$mail'");
	while($cur=mysql_fetch_array($curso))
		{
			$curs=$cur[curso];
		}
	if($mat=$curso)
		{
			$mostramat=mysql_query("select * from materiais where curso='$curs'");
			while($x=mysql_fetch_array($mostramat))
				{
					echo "<tr>
							<td> </td>
							<td><span class=normal12vermelho>$x[numaula]</span></td>
							<td><a href=controle/$x[pasta]$x[filename]>$x[titulo]</a></td>
						</tr>";
				}
		}
	else
		{
			echo "<center><span class=>Você não está matriculado neste curso.<br>
			Volte e selecione o seu curso.<br>
			<a href=javascript:history.go(-1)>Voltar</a></center>";
		}
?>

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.