Prezados participantes do Fórum, saudações!
Tenho que fazer uma seleção dos campos em uma tabela para que quando tenha 3 registros iguais, um botão ativo chamado "Solicitar Informações" seja alterado para um botão desabilitado com a inscrição "Indisponível". Tentei fazer a condição para fazer um chaveamento, mas do jeito que fiz parece estar errao e não está funcionando, pois se o resultado da contagem for "3", que é a condição para que o botão fique desabilitado, aparece todos os botões da tabela como desabilitados.
Quero que, ao ser encontrado no o valor "3", na tabela apareça o botão correspondente desabilitado na tabela do Site. Isso é para limitar o número de vezes que o usuário possa enviar solicitações, mas desejo manter as informações na tabela da página.
Segue o código usado:
<!-- Elementos Carregados da Base de Dados -->
<?php foreach($clientes as $cliente):?>
<tr>
<td><?=$cliente->nome?></td>
<td><?=$cliente->cidade?></td>
<td><?=$cliente->bairro?></td>
<td><?=$cliente->estado?></td>
<td><?=$cliente->gasto?></td>
<td><?=$cliente->id?></td>
<td><?=$cliente->tipo?></td>
<td><?=$cliente->status?></td>
<!-- Seleciona os campos da tabela que possua conteúdos iguais -->
<?php
$conexao = conexao::getInstance();
//Faz a contagem dos conteúdos iguais gravado nos campos "id_proposta"
$sql = 'SELECT id_proposta, COUNT(id_proposta) AS Qtd FROM tab_propostas
GROUP BY id_proposta HAVING COUNT(id_proposta) > 1 ORDER BY COUNT(id_proposta) DESC';
$stm = $conexao->prepare($sql);
$stm->bindValue(':id_proposta');
$stm->execute();
while($row = $stm->fetch()) {
$result = $row['Qtd'];
}
?>
<!-- Testa se conteúdo de $result retorna valor 3 -->
<?php if ($result == '3') { ?>
<!-- Botão Desabilitado se forem encotrados campos com 3 valores iguais -->
<td><button type="button" class="btn btn-secondary btn-lg" disabled>CLIENTE INDISPONÍVEL</button> </td>
<?php } else { ?>
<!-- Botão Habilitado -->
<td> <a href='propostas.php?nome=<?=$cliente->nome?>&cidade=<?=$cliente->cidade?>&bairro=<?=$cliente->bairro?>&estado=<?=$cliente->estado?>&gasto=<?=$cliente->gasto?>&id_proposta=<?=$cliente->id?>&tipo=<?=$tipo->tipo?>&acao=incluir' class="btn btn-success">SOLICITAR INFORMAÇÕES</a></td>
<?php } ?>
</tr>
<?php endforeach;?>
A contagem está retornando os números de campos com valores iguais, mas não estou conseguindo fazer com que os botões desabilitados apareçam somente onde forem encontrados 3 conteúdos iguais no campo id_proposta. Todos os campos ficam desabilitados igualmente.
Agradeço desde já pela ajuda.
Sucesso a todos.
Carlos Velho
Tenho que fazer uma seleção dos campos em uma tabela para que quando tenha 3 registros iguais, um botão ativo chamado "Solicitar Informações" seja alterado para um botão desabilitado com a inscrição "Indisponível". Tentei fazer a condição para fazer um chaveamento, mas do jeito que fiz parece estar errao e não está funcionando, pois se o resultado da contagem for "3", que é a condição para que o botão fique desabilitado, aparece todos os botões da tabela como desabilitados.
Quero que, ao ser encontrado no o valor "3", na tabela apareça o botão correspondente desabilitado na tabela do Site. Isso é para limitar o número de vezes que o usuário possa enviar solicitações, mas desejo manter as informações na tabela da página.
Segue o código usado:
<!-- Elementos Carregados da Base de Dados -->
<?php foreach($clientes as $cliente):?>
<tr>
<td><?=$cliente->nome?></td>
<td><?=$cliente->cidade?></td>
<td><?=$cliente->bairro?></td>
<td><?=$cliente->estado?></td>
<td><?=$cliente->gasto?></td>
<td><?=$cliente->id?></td>
<td><?=$cliente->tipo?></td>
<td><?=$cliente->status?></td>
<!-- Seleciona os campos da tabela que possua conteúdos iguais -->
<?php
$conexao = conexao::getInstance();
//Faz a contagem dos conteúdos iguais gravado nos campos "id_proposta"
$sql = 'SELECT id_proposta, COUNT(id_proposta) AS Qtd FROM tab_propostas
GROUP BY id_proposta HAVING COUNT(id_proposta) > 1 ORDER BY COUNT(id_proposta) DESC';
$stm = $conexao->prepare($sql);
$stm->bindValue(':id_proposta');
$stm->execute();
while($row = $stm->fetch()) {
$result = $row['Qtd'];
}
?>
<!-- Testa se conteúdo de $result retorna valor 3 -->
<?php if ($result == '3') { ?>
<!-- Botão Desabilitado se forem encotrados campos com 3 valores iguais -->
<td><button type="button" class="btn btn-secondary btn-lg" disabled>CLIENTE INDISPONÍVEL</button> </td>
<?php } else { ?>
<!-- Botão Habilitado -->
<td> <a href='propostas.php?nome=<?=$cliente->nome?>&cidade=<?=$cliente->cidade?>&bairro=<?=$cliente->bairro?>&estado=<?=$cliente->estado?>&gasto=<?=$cliente->gasto?>&id_proposta=<?=$cliente->id?>&tipo=<?=$tipo->tipo?>&acao=incluir' class="btn btn-success">SOLICITAR INFORMAÇÕES</a></td>
<?php } ?>
</tr>
<?php endforeach;?>
A contagem está retornando os números de campos com valores iguais, mas não estou conseguindo fazer com que os botões desabilitados apareçam somente onde forem encontrados 3 conteúdos iguais no campo id_proposta. Todos os campos ficam desabilitados igualmente.
Agradeço desde já pela ajuda.
Sucesso a todos.
Carlos Velho