Carlos Velho 0 Posted March 15, 2019 Report Share Posted March 15, 2019 Prezados participantes do Fórum Portugal a Programar, 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 Link to post Share on other sites
M6 150 Posted March 16, 2019 Report Share Posted March 16, 2019 Fiquei sem compreender se o problema é a condição que não está correta ou se a condição está correta mas o "disabled" não funciona. Se for o "disabled" que não funciona, basta simplesmente usares um "span" em vez do "button", por exemplo. 10 REM Generation 48K! 20 INPUT "URL:", A$ 30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50 40 PRINT "404 Not Found" 50 PRINT "./M6 @ Portugal a Programar." Link to post Share on other sites
Carlos Velho 0 Posted March 18, 2019 Author Report Share Posted March 18, 2019 Olá MC, tudo bem? Obrigado por responder. Na verdade, a explicação não está completa e vou postar com mais detalhes. O problema é que tenho uma página com informações de clientes que desejam receber pedidos para envio de orçamentos. A fim de que não eu não receba dezenas de solicitações, eu desejo que o botão "Solicitar Informações" fique desabilitado após 3 solicitações serem pedidas. Esta s solicitações são gravadas em outra tabela (tbl_propostas) e captura o id do cliente para um campo "id_proposta" ou seja, o ID do cliente é gravado no campo "id_proposta". Após 3 gravações no campo "id_proposta", desejo que seja feita uma condição que faça que o botão "Solicite Informações" fique inativo. O script com algus testes que fiz após o primeiro Post segue abaixo: <?php require 'conexao.php'; // Recebe o termo de pesquisa se existir $termo = (isset($_GET['termo'])) ? $_GET['termo'] : ''; // Verifica se o termo de pesquisa está vazio, se estiver executa uma consulta completa if (empty($termo)): $conexao = conexao::getInstance(); $sql = 'SELECT id, nome, cidade, bairro, estado, gasto, email, telefone, celular, status, tipo, foto, botao FROM tab_clientes'; $stm = $conexao->prepare($sql); $stm->execute(); $clientes = $stm->fetchAll(PDO::FETCH_OBJ); /* foreach ($clientes as $count) { // Usei como testes anteriores //$id_proposta = $count->id; //$id = $count->id; } */ endif; #### Faço a contagem de quantas dos valores iguais no campo "id_proposta" #### $conexao = conexao::getInstance(); $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(); $rows = $stm->fetchAll(PDO::FETCH_OBJ); //$rows = $stm->fetchAll(); // Usei para testes anteriores foreach ($rows as $listar) { $id_proposta = $listar->id_proposta; $qtd = $listar->Qtd; echo "$qtd"; echo "$id_proposta"; } ?> <!-- Cabeçalho da Listagem --> <legend><h2><center>Orçamentos Solicitados</center></h2></legend> <!-- Formulário de Pesquisa --> <form action="" method="get" id='form-contato' class="form-horizontal col-md-10"> <label class="col-md-2 control-label" for="termo">Pesquisar</label> <div class='col-md-7'> <input type="text" class="form-control" id="termo" name="termo" placeholder="Infome o Primeiro Nome "> </div> <button type="submit" class="btn btn-primary">Pesquisar</button> <a href='clientes.php' class="btn btn-primary">Ver Todos</a> </form> <!-- Link para página de cadastro --> <!-- <a href='cadastro.php' class="btn btn-success pull-right">Cadastrar Cliente</a> --> <div class='clearfix'></div> <?php if(!empty($clientes)):?> <br> <!-- Tabela de Clientes --> <table class="table table-striped"> <tr class='active'> <!-- <th>Foto</th> --> <th>Nome</th> <th>Cidade</th> <th>Bairro</th> <th>Estado</th> <th>Consumo KWh/Mês</th> <th>Código</th> <th>Tipo de Instalação</th> <th>Situação</th> <th>Quero Orçar</th> </tr> <?php foreach($clientes as $cliente):?> <!-- INÍCIO DO FOREACH --> <?php /* ###### Repeti a Query aqui para Testes Atneriores ##### $conexao = conexao::getInstance(); $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(); $rows = $stm->fetchAll(PDO::FETCH_OBJ); //$rows = $stm->fetchAll(); //foreach ($rows as $listar) { //$id_proposta = $rows->id_proposta; //$qtd = $listar->Qtd; //echo "$qtd"; //echo "$id_proposta"; //} */ ?> <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> <?php $id = $cliente->id; // Capturando o Id da tabela tab_clientes <!-- Do jeito que está a chamada do IF abaixo, apenas o primeiro item da tabela aparece como desabilitado. Outros que tenhas também 3 gravações na tabela tbl_propostas, permanecem ativos. No meu teste, tenho 2 campos da tabela tbl_propostas (ids 12 e com 3 propostas solicitadas. --> ?> <!-- Quando nr de propostas for igual a 3 e id_proposta for igual a ID cliente --> <?php if ($qtd == '3' && $id_proposta == $id) { ?> <td><button type="button" class="btn btn-secondary btn-lg" disabled>CLIENTE INDISPONÍVEL</button> </td> <?php } else { ?> <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;?> <!-- FIM DO FOREACH --> </table> Link com imagem da tela da página acima http://www.adaptour.com.br/tela-clientes.jpg Não sei bem trabalhar com PDO no PHP e estou com dificuldades e se puder me passar uma orientação, ficarei muito grato. Espero que agora com as informações mas detalhadas, você possa entender melhor. Muito obrigado.😊 Carlos Velho Link to post Share on other sites
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now