1
resposta

Problemas para preencher um <select> dinamicamente com dados vindos do Banco de dados Oracle

Galera, bom dia! Alguém aqui é programador PHP e manja um pouquinho de banco de dados oracle? Estou com uma dúvida de como posso preencher um "select" dinamicamente com nomes de funcionários vindos do Banco de dados. Ou seja, Através de uma query com um select na tabela, puxar os dados do Banco e fazer aparecer em uma outra página dentro de um "select/option". Código front-end:

<form action="buscar-contracheque.php" method="post">
        <label class=""><strong>Funcionário</strong></label>

        <select class="rounded-pill text-center " name="colaborador">
            <option>Selecione...</option>
            <option>/*os nomes devem ser inseridos aqui*/</option>
        </select>

        <label class=""><strong>Ano do Contracheque</strong></label>

        <select class="rounded-pill text-center ausencia" name="ano" style="width:277px;">
            <option>Selecione...</option>
          <?php $anoInicial = 2017; $anoAtual = date('Y'); 
          while($anoAtual>=$anoInicial){?><option value="<?php echo $anoInicial ?>"><?php echo $anoInicial++?></option><?php } ?>
        </select>

        <label for="evento" class="" ><strong>Mês do Contracheque</strong></label>
        <select class="rounded-pill text-center ausencia" name="mes" style="width:277px;">
            <option>Selecione...</option>
             <?php setlocale(LC_ALL, 'pt_BR.UTF-8', 'Portuguese_Brazil.1252');  $contador = 0;
          while($contador<12){ ?> <option> <?php $meses = ucwords( strftime('%B',  strtotime("+{$contador} month")));
              echo $meses;
              $contador++;?>
              </option>
              <?php } oci_close($conn);?>
        </select>
        <input type="submit" name="buscar" value="Buscar" class="btnc btn-primary mt-3" target="_blank">
    </form>

Código Back-end:

<?php
ob_start();
session_start();

$conn = oci_connect('nomeBanco', 'senhaBanco', 'IpBanco');

$query = "SELECT nome, id_colaborador FROM nomeTabela WHERE status = 1 order by nome";
$parse = ociparse($conn, $query);
$result = ociexecute($parse);
$dbarray = oci_fetch_array($parse);

if(isset($_POST["buscar"]))
{  
$colaborador = $_POST["colaborador"];
$qualAno = $_POST["ano"];
$qualMes = $_POST["mes"];
}

oci_close($conn);
?>
1 resposta

Olá, Gustavo! Tudo bem com você?

Peço desculpa pela demora em responder o seu tópico.

Para resolver esse problema, você pode utilizar o resultado da sua consulta SQL para popular as opções do <select>. No seu código PHP, você já está realizando a consulta e armazenando o resultado em $dbarray. Agora, você precisa percorrer esse resultado e criar as opções do <select>.

Você pode fazer isso utilizando um loop foreach para percorrer o array $dbarray e exibir cada nome de funcionário como uma opção. Por exemplo:

<select class="rounded-pill text-center " name="colaborador">
    <option>Selecione...</option>
    <?php foreach ($dbarray as $row) { ?>
        <option><?php echo $row['NOME']; ?></option>
    <?php } ?>
</select>

Dessa forma, cada nome de funcionário retornado pela consulta será exibido como uma opção dentro do <select>. Certifique-se de substituir 'NOME' pelo nome correto da coluna na tabela do banco de dados que contém os nomes dos funcionários.

Espero que isso te ajude a resolver o problema! Se tiver mais alguma dúvida, estarei à disposição.

Grande abraço e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software