Questão de Programação — Linguagens de programação — FUNDATEC 2026
Programação›Linguagens de programação
Código
qg685266
Banca
FUNDATEC
Órgão
IFC-SC
Ano
2026
Nível
Superior
Cargo
Professor EBTT - Informática: Linguagens de Programação
Analise o seguinte trecho de código em PHP (PHP 7), que realiza uma consulta em um banco de dados utilizando a extensão mysqli:Considere que a tabela equipamento possui os seguintes registros:Qual será a saída exibida pela execução do script?
AAlta produção
BBaixa produção
C3
DAlpha
EBeta
Revelar gabarito e comentário▾
GabaritoA — Alta produção
Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.
PHP com mysqli: consulta e saída
Gabarito: letra A. O script executa uma consulta na tabela equipamento, percorre os registros retornados e, para cada um, verifica se o valor da coluna status é igual a 'ativo'. Como a tabela possui apenas um registro com status = 'ativo' (o equipamento 'Alpha'), a variável $contador é incrementada uma única vez, resultando em 1. Em seguida, o script compara $contador com 2: como 1 não é maior que 2, o else é executado, exibindo a string 'Baixa produção'. Portanto, a saída correta é Baixa produção.
A questão envolve a compreensão de como o PHP, por meio da extensão mysqli, interage com um banco de dados MySQL. O trecho de código apresentado realiza uma consulta SQL simples, sem cláusula WHERE, o que significa que todos os registros da tabela equipamento são retornados. O script então itera sobre o resultado usando um laço while, que é uma estrutura de repetição fundamental em PHP para percorrer conjuntos de resultados de consultas. Dentro do laço, há uma estrutura condicional if que verifica se o valor da coluna status de cada registro é exatamente igual à string 'ativo'. Essa comparação é feita com o operador de igualdade ==, que compara valores após a conversão de tipos, mas como ambos os lados são strings, a comparação é direta.
A variável $contador é inicializada com o valor 0 antes do laço. A cada iteração em que a condição $registro['status'] == 'ativo' é verdadeira, o valor de $contador é incrementado em 1 usando o operador de incremento ++. Após o laço, o script verifica se $contador é maior que 2. Se fosse, exibiria 'Alta produção'; caso contrário, exibiria 'Baixa produção'. Como há apenas um registro ativo, $contador é 1, que não é maior que 2, então a saída é 'Baixa produção'.
É importante notar que a saída não é o nome do equipamento, nem a quantidade de registros, mas sim uma string que depende da contagem de registros ativos. A alternativa A é a única que corresponde a essa lógica. As demais alternativas apresentam valores que não são produzidos pelo script, como o nome de um equipamento específico ou a contagem total de registros.
A pegadinha desta questão está em não considerar que a condição if filtra apenas os registros com status igual a 'ativo'. O candidato pode contar todos os registros da tabela (3) e marcar a alternativa C, ou pode se confundir com os nomes dos equipamentos e marcar D ou E. A chave é entender que o script conta apenas os registros ativos e, com base nessa contagem, decide qual string exibir.
1Consulta sem WHERE
2Conta status = 'ativo'
3Contador = 1
41 > 2? Não
5Exibe 'Baixa produção'
LEVEL · soulevel.com.br
Alternativa A — ✅ Correta ⟵ GABARITO
A alternativa A está correta porque o script conta apenas os registros com status = 'ativo'. Na tabela, apenas o equipamento 'Alpha' possui status = 'ativo', então $contador é incrementado uma vez, resultando em 1. Como 1 não é maior que 2, o else é executado e a string 'Baixa produção' é exibida. A lógica do script é exatamente essa: se houvesse mais de 2 registros ativos, exibiria 'Alta produção'; caso contrário, 'Baixa produção'.
Alternativa B — ❌ Incorreta
A alternativa B está incorreta porque o script não exibe 'Alta produção'. Para que essa saída ocorresse, seria necessário que $contador fosse maior que 2, ou seja, que houvesse pelo menos 3 registros com status = 'ativo'. Como há apenas 1 registro ativo, a condição if ($contador > 2) é falsa, e o else é executado, exibindo 'Baixa produção'.
Alternativa C — ❌ Incorreta
A alternativa C está incorreta porque o script não exibe o número total de registros da tabela. A variável $contador é incrementada apenas para registros com status = 'ativo', não para todos os registros. Como há 3 registros no total, mas apenas 1 ativo, $contador é 1, não 3. O script não imprime o valor de $contador diretamente; ele usa esse valor apenas para decidir entre 'Alta produção' e 'Baixa produção'.
Alternativa D — ❌ Incorreta
A alternativa D está incorreta porque o script não exibe o nome do equipamento. O código não contém nenhuma instrução para imprimir o valor da coluna nome ou qualquer outra coluna. A saída é determinada exclusivamente pela contagem de registros ativos, resultando em uma string fixa ('Alta produção' ou 'Baixa produção'), não em dados da tabela.
Alternativa E — ❌ Incorreta
A alternativa E está incorreta pelo mesmo motivo da alternativa D: o script não exibe o nome de nenhum equipamento. A saída é uma string fixa baseada na contagem de registros ativos. Como há apenas um registro ativo, a saída é 'Baixa produção', não 'Beta'.