Ir para conteúdo
Fórum Script Brasil
  • 0

Comparar se valores do "while" são iguais aos valores do banco de dados


rfreitas84

Pergunta

Tenho o seguinte código, onde estou tentando comparar os valores que constam no banco de dados, com os valores que são gerados pelo "while". Os valores são 2 e 4, e o "while" gera de 0 a 10. O objetivo é que onde o número gerado seja igual ao número que consta no bd, assuma a classe "verde". O problema é que a classe só é aplicada ao último número encontrado, nesse caso ao número 4, pulando o 2. O que está errado nesta situação, pois já verifiquei algumas opções, onde ele inverte, ficando verde a partir do número encontrado? Essa forma abaixo foi o mais próximo que consegui até agora, mas continuo tentando.

 

OBS: Tinha colocado "for", que era o que utilizei nas primeiras tentativas, mas foi com o while que consegui o resultado citado.

<?php

session_start();

$servidor = "127.0.0.1";
$usuario = "root";
$senha = "usbw";
$dbname = "test";

//Criar a conexão
$conn = mysqli_connect($servidor, $usuario, $senha, $dbname, 3307);

?>
<!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>Teste</title>
    <link rel="stylesheet" href="bootstrap.css">

    <style>
        .verde {
            color: white;
            background-color: green;
        }
    </style>
</head>

<body>
    <?php

    $classe = "";

    $sqt = "SELECT numero FROM numeros_teste";
    $resultado = mysqli_query($conn, $sqt);

    while ($result = mysqli_fetch_array($resultado)) 
        $vallor = implode(" ", $result);
        $i = "0";

        $num_c = "10";
    

    while ($i <= $num_c) {
        if ($i != $vallor) {
            $classe = '';
        } else {
            $classe = 'verde';
        }

        echo "<table class='table'>";
        echo "<tr>";
        echo "<td class='$classe'>" . $i . "</td>";
        echo "</tr>";
        echo "</table>";

        $i++;
    }
    ?>

</body>

</html>
Editado por rfreitas84
Citei "for" mas na verdade é o "while" que trouxe o resultado mais próximo do desejado
Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 1
<style>.verde{color:white;background-color:green</style>
<?php
session_start();
$mysqli=new mysqli("localhost","root","","astudy"); //usei os dados do meu servidor
echo "<table class=table>";
for($i=0;$i<=10;$i++){
    $query=$mysqli->query("select numero from numeros_teste where numero=$i");
	$num_rows=mysqli_num_rows($query);
	if($num_rows){$classe="verde";}else{$classe="";}
	echo "<tr><td class=$classe>$i";}
echo "</table>";
?>

 

Link para o comentário
Compartilhar em outros sites

  • 0
Em 13/08/2022 em 23:30, Frank K Hosaka disse:
<style>.verde{color:white;background-color:green</style>
<?php
session_start();
$mysqli=new mysqli("localhost","root","","astudy"); //usei os dados do meu servidor
echo "<table class=table>";
for($i=0;$i<=10;$i++){
    $query=$mysqli->query("select numero from numeros_teste where numero=$i");
	$num_rows=mysqli_num_rows($query);
	if($num_rows){$classe="verde";}else{$classe="";}
	echo "<tr><td class=$classe>$i";}
echo "</table>";
?>

 

Obrigado cara. Eu precisa dessa direção mesmo para conseguir sair do lugar. Simples e perfeito. 

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...