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

consulta na tabela que me retorna registros duplicados


LIGNT

Pergunta

2 respostass a esta questão

Posts Recomendados

  • 0
<?php
$pdo=new PDO("mysql:host=localhost;dbname=diario","root","");
$stmt=$pdo->query("drop table if exists vetores");
$stmt=$pdo->query("create table vetores (id int not null auto_increment,
    vetor json default null, primary key(id)) engine=InnoDB
    default charset=utf8mb4 collate=utf8mb4_0900_ai_ci");
$arrays=[[123,122,121,111,132],[122,22,221,211,232],[12,13,132,11,15],[123,32,33,36,123]];
foreach($arrays as $array){
    $json=json_encode($array);
    $pdo->query("insert into vetores (vetor) values ('$json')");}
$stmt=$pdo->query("select * from vetores");
$todos=$stmt->fetchAll(PDO::FETCH_OBJ);
$umVetor=[];
foreach($todos as $cada){
    $umVetor=array_merge($umVetor,json_decode($cada->vetor));}
$frequencia=array_count_values($umVetor); ?>
<table style=margin-left:400px><th>id |<th>re1 |<th>re2 |<th>re3 |<th>re4 |<th>re5 |
<?php foreach($todos as $cada): ?>
      <tr><td style=text-align:right><?=$cada->id?> |
      <?php
        $vetor=json_decode($cada->vetor);
        foreach($vetor as $elemento): 
        $style="style=text-align:right";
        if($frequencia[$elemento]==2){$style="style=text-align:right;color:green";}
        if($frequencia[$elemento]==3){$style="style=text-align:right;color:red";}
        ?>
      <td <?=$style?>><?=$elemento?> |
      <?php endforeach; endforeach; ?>
      

Ao invés de trabalhar com cinco campos re1 ... re5, a minha sugestão é trabalhar com apenas um campo tipo texto para armazenar os cinco números na forma de array.

 

Captura de tela 2023-12-26 104240.png

Editado por Frank K Hosaka
Link para o comentário
Compartilhar em outros sites

  • 0

Por outro lado, se você persiste em trabalhar com cinco campos numéricos, a minha sugestão é a mesma, o de usar o recurso do array do PHP para calcular a frequências dos números envolvidos:

<?php
function frequencia($frequencia,$elemento){
    $style="style=text-align:right";
    if($frequencia[$elemento]==2){$style="style=text-align:right;color:green";}
    if($frequencia[$elemento]==3){$style="style=text-align:right;color:red";}
    echo "<td $style>$elemento |";}
$pdo=new PDO("mysql:host=localhost;dbname=diario","root","");
$stmt=$pdo->query("drop table if exists vetores");
$stmt=$pdo->query("create table vetores (id int not null auto_increment,
    re1 int default null, re2 int default null, re3 int default null,
    re4 int default null, re5 int default null, primary key(id)) engine=InnoDB
    default charset=utf8mb4 collate=utf8mb4_0900_ai_ci");
$arrays=[[123,122,121,111,132],[122,22,221,211,232],[12,13,132,11,15],[123,32,33,36,123]];
foreach($arrays as $array){
    $re1=$array[0];
    $re2=$array[1];
    $re3=$array[2];
    $re4=$array[3];
    $re5=$array[4];
    $pdo->query("insert into vetores (re1,re2,re3,re4,re5) values 
        ($re1,$re2,$re3,$re4,$re5)");}
$stmt=$pdo->query("select * from vetores");
$todos=$stmt->fetchAll(PDO::FETCH_OBJ);
$umVetor=[];
foreach($todos as $cada){
    $umVetor=array_merge($umVetor,[$cada->re1,$cada->re2,$cada->re3,$cada->re4,$cada->re5]);}
$frequencia=array_count_values($umVetor); ?>
<table style=margin-left:400px><th>id |<th>re1 |<th>re2 |<th>re3 |<th>re4 |<th>re5 |
<?php foreach($todos as $cada): ?>
      <tr><td style=text-align:right><?=$cada->id?> |
      <?php
      frequencia($frequencia,$cada->re1);
      frequencia($frequencia,$cada->re2);
      frequencia($frequencia,$cada->re3);
      frequencia($frequencia,$cada->re4);
      frequencia($frequencia,$cada->re5);
      endforeach;
      

 

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,1k
    • Posts
      651,8k
×
×
  • Criar Novo...