Jump to content

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 ...

Share this post


Link to post
Share on other 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.

Share this post


Link to post
Share on other 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 ?


 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By 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..
       
       
    • By 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>  
    • By Sapinn
      Pessoa de novo eu aqui kk. Acho que essa pergunta é simples mas eu não sei como fazer, já pesquisei em vários cantos mas só achei a resposta em Jquery e eu queria fazer em Javascript puro. Basicamente eu gostaria de transferir dados de uma tabela para um form eu já consegui fazer mas só funciona em um td e eu gostaria nos outros não funcionam. 
      <!DOCTYPE html> <html lang="pt-br"> <head>     <meta charset="UTF-8">     <meta http-equiv="X-UA-Compatible" content="IE=edge">     <meta name="viewport" content="width=device-width, initial-scale=1.0">     <title>Document</title> </head> <body>     <table border="1px">         <tr>             <td>Nome</td>             <td>Endereço</td>             <td>Telefone</td>             <td>Adicionar</td>         </tr>         <tr>             <td id="nome_cliente" value="Sapien">Sapinn</td>             <td id="endereco_cliente" value="Rua 01">Rua 01</td>             <td id="tel_cliente" value="(88) 9 9999-9999">(88)9 9999-9999</td>             <td><button onclick="adicionar()">Adicionar</button></td>         </tr>         <tr>             <td id="nome_cliente" value="Sapien">Supremo</td>             <td id="endereco_cliente" value="Rua 01">Rua 05</td>             <td id="tel_cliente" value="(88) 9 9999-9999">(88)9 0000-0000</td>             <td><button onclick="adicionar()">Adicionar</button></td>         </tr>     </table><br><br>     Nome:<input type="text" name="nome" id="nome">     Telefone: <input type="text" name="telefone" id="telefone">     Endereço: <input type="text" name="endereco" id="endereco">     <script>         function adicionar(){                         let nome_cliente = document.getElementById("nome_cliente").innerHTML;             let endereco_cliente = document.getElementById("endereco_cliente").innerHTML;             let tel_cliente = document.getElementById("tel_cliente").innerHTML;             document.getElementById('nome').value = nome_cliente;             document.getElementById('telefone').value = tel_cliente;             document.getElementById('endereco').value = endereco_cliente;             console.log(nome_cliente, endereco_cliente, tel_cliente)                      }     </script> </body> </html>  
    • By jacquesvaladares
      Como inserir uma imagem como background em uma célula de tabela. Fiz um exemplo simples q apresento abaixo.
       
      <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
      <html>
      <head>
        <meta http-equiv="content-type"
       content="text/html; charset=ISO-8859-1">
        <title>Teste de imagem na celula da tabela</title>
      <!--&#8211; I N I C I O C S S &#8211;-->
        <style type="" text/css="">
      .imagem{
      background: url(liz.png) no repeat;
      }
        </style><!--&#8211; F I M C S S &#8211;-->
      </head>
      <body>
      <table
       style="width: 100%; height: 450px; text-align: left; margin-left: auto; margin-right: auto;"
       border="2" cellpadding="2" cellspacing="2">
        <tbody>
          <tr>
            <td style="height: 50%; width: 50%;"><class
       ="imagem"></class></td>
            <td
       style="height: 50%; width: 50%; background-color: rgb(255, 255, 204);"></td>
          </tr>
          <tr>
            <td
       style="height: 50%; width: 50%; background-color: rgb(51, 102, 255);"></td>
            <td
       style="height: 50%; width: 50%; background-color: rgb(51, 255, 51);"></td>
          </tr>
        </tbody>
      </table>
      <br>
      </body>
      </html>
       

    • By rodrigueslogstc
      Oi pessoal, tudo bem...
      Estou precisando clicar em uma linha da tabela e abrir outra página com os valores dessa linha que cliquei, sou novato e só conheço um pouco de php e HTML
      Poderiam me ajudar por favor?
      <?php session_start(); include_once("conectbusca.php"); $pesquisaunid = $_POST['Unidade']; ?> <html> <head> <title>Ranking</title> <link rel="stylesheet" type="text/css" href="estiloranking.css"> </head> <body> <table class="tabela" style='width:1272px'> <!-- Criando tabela: --> <tr> <th style='width:370px'>nome</th> <th>CPF</th> <th>&nbspcolocação&nbsp</th> <th>&nbspPontos/km&nbsp</th> <th>&nbspTotal km&nbsp</th> <th>&nbspTotal Pontos&nbsp</th> <th>&nbspMotor Ocioso&nbsp</th> <th>&nbspExcesso Velocidade&nbsp</th> <th>&nbspFreada Brusca&nbsp</th> <th>&nbspCurva Brusca&nbsp</th> </tr> <?php //Trazendo os dados do banco $sql = "SELECT * FROM tb_motoristas WHERE Unidade = '$pesquisaunid' AND Perfil = '$pesquisa'"; $resultado = mysqli_query($strcon,$sql) or die("Erro ao retornar dados"); $row = mysqli_num_rows($resultado); /*echo "$row";*/ if ($row == 0) { header("Location: login2.php");} // Obtendo os dados por meio de um loop while while ($registro = mysqli_fetch_array($resultado)) { $nome = $registro['Nome']; $cpf = $registro['CPF']; $unidade = $registro['Unidade']; $clocal = $registro['Coloc_local']; $cgeral = $registro['Coloc_geral']; $tkm = $registro['Total_km']; $tpontos = $registro['Total_pontos']; $mocioso = $registro['Motor_ocioso']; $velocidade = $registro['Velocidade']; $freada = $registro['Freada']; $curva = $registro['Curva']; echo "<tr>"; echo "<td><a href='prontuario.php'>".$nome."</td>"; echo "<td>".$cpf."</td>"; echo "<td align='center'>".$clocal."</td>"; echo "<td align='center'>".$cgeral."</td>"; echo "<td align='center'>".$tkm."</td>"; echo "<td align='center'>".$tpontos."</td>"; echo "<td align='center'>".$mocioso."</td>"; echo "<td align='center'>".$velocidade."</td>"; echo "<td align='center'>".$freada."</td>"; echo "<td align='center'>".$curva."</td>"; echo "</tr>"; } mysqli_close($strcon); echo "</table>";?> </body> </html>  
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.