Ir para conteúdo

Arquivado

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

brunosensatto

Consultar 2 tabelas diferentes

Recommended Posts

Boa tarde pessoal.

Sou iniciante em PHP e estou desenvolvendo um sistema de bolsas de estudos. Estou com dificuldade na seguinte questão.

 

Tenho a tabela Bolsas onde as bolsas de estudos são cadastradas e tenho outras tabelas como cidade, cursos, instituição, etc. No formulário de cadastro da Bolsa, nas opções cidade, cursos instituição... eu faço uma consulta no Banco de Dados e retorno os valores num ComboBox. 

 

<select class="form-control1" name="curso">
    <option value="">Selecione ...</option>
    <?php
    // Instancia o objeto PDO
    $pdo = new PDO('mysql:host=localhost;dbname=bolsascursos', 'root', '');
    $consulta = $pdo->query("SELECT id, nome FROM cursos;");
    while ($linha = $consulta->fetch(PDO::FETCH_ASSOC)) {
    ?>
    <option value="<?php echo $linha['id'] ?>"><?php echo $linha['nome'] ?></option>
    <?php
    }
    ?>
    ?>
</select>

O exemplo acima ele insere o id capturado dentro da tabela Bolsas na coluna id_bolsa.

 

Abaixo ta o código usado pra listar as Bolsas Cadastradas.

<?php
	    $select = "SELECT * from bolsas ORDER BY id DESC";

		try {
			$result = $conexao->prepare($select);
			$result->execute();
			$contar = $result->rowCount();
			if($contar>0) {
				while($mostrar = $result->FETCH(PDO::FETCH_OBJ)) {
?>

<?php echo $mostrar->curso;?>
<?php echo $mostrar->categoria;?>
<?php echo $mostrar->id_curso;?>

....

<?php
}
			} else {
				echo 'Não existem instituições cadastradas!';
			}

		}catch(PDOException $e) {
			echo $e;
	}
?>

 

Minha dúvida é a seguinte: Como faço para que ao invés de amostrar o ID do curso, amostrar o Nome do Curso ?

Eu li sobre INNER JOIN mas não consegui fazer nada que desse certo ...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Com inner join você vai retornar as bolsas e os cursos correspondente ao ID CURSO.

Por exemplo:

 

  • Bolsa ID 1 -> Nome: BOLSANATAL - Categoria: 2 - Idcurso: 2
  • CURSO ID 2 -> Nome: PHP - Descricao: Venha programar em PHP
  • CURSO ID 3 -> Nome: C++ - Descricao: ALOCA!

 

Se você executar:

SELECT 
B.categoria as bolsa_categoria, 
B.id as bolsa_id,
C.nome as curso_nome, 
C.id as curso_id 
FROM bolsas B 
INNER JOIN cursos C 
ON C.id = B.id_curso;

Será retornado:

  • bolsa_id -> 1
  • bolsa_categoria -> 2
  • curso_nome -> PHP
  • curso_id -> 2

 

Espero que ajude.

Compartilhar este post


Link para o post
Compartilhar em outros sites
13 horas atrás, jamesbond disse:

Com inner join você vai retornar as bolsas e os cursos correspondente ao ID CURSO.

Por exemplo:

 

  • Bolsa ID 1 -> Nome: BOLSANATAL - Categoria: 2 - Idcurso: 2
  • CURSO ID 2 -> Nome: PHP - Descricao: Venha programar em PHP
  • CURSO ID 3 -> Nome: C++ - Descricao: ALOCA!

 

Se você executar:


SELECT 
B.categoria as bolsa_categoria, 
B.id as bolsa_id,
C.nome as curso_nome, 
C.id as curso_id 
FROM bolsas B 
INNER JOIN cursos C 
ON C.id = B.id_curso;

Será retornado:

  • bolsa_id -> 1
  • bolsa_categoria -> 2
  • curso_nome -> PHP
  • curso_id -> 2

 

Espero que ajude.

 

Desculpe, ainda não consegui resolver o problema. Como eu disse, sou iniciante ainda!
Vou te listar a tabela Bolsas onde são inseridos as bolsas.

Onde em instituicao são gravados os IDs das instituições cadastradas na tabela instituicoes.

 

Aqui está o código usado pra listar as bolsas cadastradas

 

<?php
				$select = "SELECT * from bolsas ORDER BY id DESC";

		try {
			$result = $conexao->prepare($select);
			$result->execute();
			$contar = $result->rowCount();
			if($contar>0) {
				while($mostrar = $result->FETCH(PDO::FETCH_OBJ)) {
?>
<div class="col-sm-3">
<img src="../img/<?php echo $mostrar->instituicao;?>" style="max-width: 180px; width: auto; max-height: 115px; height: auto;"><br><br>
<b>Curso: </b> <?php echo $mostrar->curso;?><br>
<b>Modalidade: </b> <?php echo $mostrar->categoria;?><br>
<b>Tipo: </b> <?php echo $mostrar->tipo_curso;?><br>
<b>Cidade: </b><?php echo $mostrar->cidade;?><br>
<b>Plano de Estudos: </b><?php
$max = 120; echo substr_replace($mostrar->plano_estudos, (strlen($mostrar->plano_estudos) > $max ? '...' : ''), $max);?><br>
<b>Percentual: </b><?php echo $mostrar->percentual;?>%<br>
<b>Valor Total: </b>R$ <?php echo $mostrar->valor_total;?><br>
<b>Valor da Bolsa: </b>R$ <?php echo $mostrar->valor_desconto;?><br>
<b>Nº de Parcelas: </b><?php echo $mostrar->numero_parcelas;?><br>
<b>Valor da Matrícula: </b>R$ <?php echo $mostrar->custo_matricula;?><br>
<b>Custo com Material: </b>R$ <?php echo $mostrar->custo_com_material;?><br>
<b>Percentual por Indicação: </b><?php echo $mostrar->percentual_indicacao;?>%<br>
<a href="editar-bolsa.php?id=<?php echo $mostrar->id; ?>">Editar</a>
</div>

<?php
}
			} else {
				echo 'Não existem instituições cadastradas!';
			}

		}catch(PDOException $e) {
			echo $e;
	}
?>

Aí que vem a minha dúvida, como faço pra amostrar o nome da Instituição invés do ID ?


 

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por babylon
      Olá galera tudo bem?
      Deixa eu perguntar, estava mexendo no meu site e queria adicionar em html essa tabela porem esta dando erro pois fica assim:
       

      Porem gostaria que ficasse assim:

      Segue o código da tabela:
      <center><table border="0">
          <tr>
      <td bgcolor="#0092df" width="24%"><a href="/categorias?ename=smartphones"><span style="font-size: 20px; color: #ffffff;"><b> <font color="#0092df">..</font>Bicicleta<br> <font color="#0092df">..</font>Track Bikes<br> <font color="#0092df">..</font>Aro 29 TKS</b></a></span><br><br><font size="5"><center><span style="background-color: #A1CD44">DE:</span></font> <br><font size="5"><s>R$ 1.999,99</center></font></s> </td><td><p><a href="/categorias?ename=smartphones"><img src="/static/img/itembicicleta.jpg"><br><font size="5"><center><span style="background-color: #A1CD44">COM - 60%:</span></font> <br><font size="5">1.199,99</font></center></a></td>
             <td><font color="#ffffff">....</font></td>
              <td bgcolor="#0092df" width="24%"><a href="/categorias?ename=smartphones"><span style="font-size: 20px; color: #ffffff;"><b> <font color="#0092df">..</font>Monitor 24"<br> <font color="#0092df">..</font>Samsung<font color="#0092df">aa.aa</font><br> <font color="#0092df">..</font>1ms 144hz</b></a></span></center></td><td><p><a href="/categorias?ename=smartphones"><img src="/static/img/itemmonitor.jpg"></a></td>
          </tr>
          </table></center>
      O que estaria errado, pois não sei como colocar nessa tabela outro fundo de outra cor, veja que usei td bgcolor="#0092df" para o azul escuro mas não sei como usaria pro "#e4f1fb" para o fundo ficar de azul claro em baixo bem como não ficou correto em altura o "DE:" com o "COM - 60%:".
      Bom é isso, obg.


    • Por clovis.sardinha
      Bom dia.
      Meu problema é o seguinte:
      Estou fazendo uma tabela e preciso mostrar o usuário e várias cidades que pertencem a este usuário.
      O resultado do array é o seguinte:

      Quando passo para a tabela os valores de cidade se repetem para o mesmo usuário até o final e retorna fazendo o mesmo para o próximo usuário. 
      Veja abaixo

       
      Meu código para a tabela é a seguinte:
      <tr> <td align="left"><?php echo $usuario['nome'] ?></td> <td align="left"><?php echo $usuario['nome_orgao'] ?></td> <td align="left"><?php echo $usuario['nome_funcao'] ?></td> <?php foreach($destinos as $key=>$destino):?> <?php $key=0;?> <td align="left"> <?php foreach($destino as $chave=> &$cidade): ?> <?php echo $cidade['cid_nome']."-";?> <?php endforeach;?> </td> <?php $key+=$key; ?> <?php endforeach;?> <td><?php echo date('d/m/Y', strtotime( $usuario['created_at'])) ?></td> <td align="left"><a href="<?php echo base_url('UserAdmin/Usuario/getUsuarioById')."/".$usuario['id_user'] ?>">DETALHES</a></td> </tr> <?php endforeach ?> Onde estou errando? O que tenho de fazer para percorrer este array de modo a aparecer apenas as cidades pertencentes a cada usuário?

    • Por MarceloEBM
      Baixei a tabela do melhorenvio e adaptei para o formato da webcontinental que eles disponibilizam, enviei para o gerente de conta e ele disse que rodou, não atualizou e não tem nenhuma mensagem de erro pra me passar.
       
      Posso estar fazendo errado, alguém tem alguma experiencia com esta tabela de frete?
    • Por Jack Oliveira
      Ola pessoal boa noite preciso salvar umas coisas no banco de dados usando ao clicar no botão que esteja aparecendo sem que recarregue a página
       
      Seria isso aqui
       
      HTML do botão
      <div class="btn-group"> <a href="javascript:void(0)" class="rate-btn toggole-contnet"> <i class="fa fa-thumbs-o-up" aria-hidden="true"></i> Sim </a> <a href="javascript:void(0)" class="rate-btn toggole-contnet"> <i class="fa fa-thumbs-o-down" aria-hidden="true"></i> Não </a> </div> No PHP para salvar no banco esta da seguinte forma.
      <?php if(isset($_POST['AvaliComentario'])) { // Se o cookie ainda não foi setado $cookie = isset($_COOKIE["avali_comentario_".$Comentario['id']]) ? $_COOKIE["avali_comentario_".$Comentario['id']] : null; if (!isset($cookie)) { $Adicionar = array( 'comentario_id' => $Comentario['id'], 'up' => post('up'), 'down' => post('down') ); $Query = DBCreate('avali_comentario', $Adicionar); // Se for um sucesso a query if ($Query) { // Seta um cookie setcookie("avali_comentario_".$Comentario['id']."", true, time()+60*60*24*6004); // Retorna false, ou seja, sucesso echo false; Redireciona(''.$URLSHARE.''); }else{ //AbreAlerta("Erro! Ouve um erro ao ".$dados['titulo']."!"); //Redireciona(''.$URLSHARE.''); } }else{ //Sweet('Atenção!!!', 'Você já deu sua Curtida para '.$dados['titulo'].'!', 'warning', 'Fechar'); //AbreAlerta("Ops! Você já deu sua Curtida para ".$dados['titulo']."!"); //Redireciona(''.$URLSHARE.''); } } Só preciso para quando clicar uns dos botão ele salvar sem precisar carregar a página...
       
      Se ter um forma diferente para fazer fico grato pelas dicas que puderem dar ai..
       
       
    • Por Sapinn
      Tenho uma tabela e gostaria de multiplicar a quantidade de produtos para a compra com o valor unitário e gerar o valor total e colocar em outra td, alguém sabe como fazer isso???
       
       <table class="table-default">                 <thead>                     <th>Produto</th>                     <th>Quant</th>                     <th>Valor Unit.</th>                     <th>Valor Total</th>                     <th>Alterar</th>                     <th>Excluir</th>                 </thead>                 <tbody>                     <tr>                         <td>Placa Mãe</td>                         <td class="quant_produto">1</td>                         <td class="valor_produto">100,00</td>                         <td class="total-produto"></td>                         <td><a href=""><i class="bi bi-pencil-fill"></i></a></td>                         <td><a href=""><i class="bi bi-trash-fill"></i></a></td>                     </tr>                                         <tr>                         <td>Memoria Ram DDr3</td>                         <td class="quant_produto">1</td>                         <td class="valor_produto">50,00</td>                         <td class="total-produto"></td>                         <td><a href=""><i class="bi bi-pencil-fill"></i></a></td>                         <td><a href=""><i class="bi bi-trash-fill"></i></a></td>                     </tr>                     <tr>                         <td>Memoria Ram DDr3</td>                         <td class="quant_produto">1</td>                         <td class="valor_produto">50,00</td>                         <td class="total-produto"></td>                         <td><a href=""><i class="bi bi-pencil-fill"></i></a></td>                         <td><a href=""><i class="bi bi-trash-fill"></i></a></td>                     </tr>                 </tbody>             </table>  
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.