Jump to content
PeeWee

While duplicando resultado

Recommended Posts

Opaa, o problema é o seguinte: preciso fazer uma busca no BD com esse código:

 

$buscar = $pdo->prepare("SELECT * FROM `produtos` WHERE `titulo` LIKE '%$textoBusca%'");
        $buscar->execute();

        $retorno = array();
        $retorno['dados'] = '';
        $retorno['qtd'] = $buscar->rowCount();
        if($retorno['qtd'] >= 0){
            while($conteudo = $buscar->fetchObject()){
                $retorno['dados'] .= '<a href="#" id="'.$conteudo->id.':'.$conteudo->valor.'">'.utf8_encode($conteudo->titulo).'</a>';
            }
        }

 

O problema é que os resultados estão vindo duplicados (no BD só há 3 registros)

 

Não tenho idéia do que fazer, se alguem puder ajudar agradeço desde já. 

 

Share this post


Link to post
Share on other sites

Tenta assim:

$buscar = $pdo->prepare("SELECT * FROM produtos WHERE titulo LIKE '%{$textoBusca}%'");
$buscar->execute();
$resultado = $buscar->fetchAll(PDO::FETCH_OBJ);
if ($buscar->rowCount()) {
    foreach ($resultado as $value) {
        echo $value->id;
    }
}

 

Share this post


Link to post
Share on other sites

parece que funcionou, mas terei que fazer pequenas alterações, o que eu queria entender é porque o meu código não funcionou sendo que eu copiei e colei de outro trecho do mesmo código que no caso está funcionando normalmente.

Share this post


Link to post
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By Pitag346
      Olá pessoal, tudo bem ? Estou com um probleminha, espero que me ajudem...
       
      Seguinte, tenho uma tabela onde faço a exibição de alguns dados, tais como:
       
      NOME, 
      QUANTIDADE, 
      VALOR
       
      Eu quero buscar o valor, em outra tabela e exibir dentro desse while. Porem, ele está exibindo em todos os resultados.
      Seguinte, 
      Cada usuário que efetuar uma vendo do produto tal, é salvo na tabela VENDIDOS, onde o mesmo armazena o "ticket_promote_id". 
      Ao fazer o while das vendas, quero pegar o valor do produto em outra tabela com o "ticket_promote_id" que mencionei acima, porem ao fazer isso, ele me retorna o valor de um produto em todos os resultados do while. 
       
      Alguém sabe por que ? Segue meu código abaixo:
      $valueTotali = 0; while($dados = mysqli_fetch_assoc($sql_promoters)){ $user = $dados['id']; $sqlIngress = $conn->query("SELECT * FROM vendidos WHERE ticket_promote_id = '$user' "); $cont = $sqlIngress->num_rows; if($cont > 0){ $dadosIngress = mysqli_fetch_assoc($sqlIngress); $loteId = $dadosIngress['ticket_lote_id']; $sqlLote = $conn->query("SELECT * FROM ingress WHERE lote_id = '$loteId' "); while($data = mysqli_fetch_assoc($sqlLote)){ $valueTotali += $data['lote_preco']; } }  
      Segue a imagem da tabela com o mesmo valor sendo replicado em todos os resultados:

       
       
    • By Gildvan Arley
      <?php $data = date("d/m/Y"); $fimVip = $exibir_pag["fimvip"]; $dataPag = $exibir_pag["data"]; if ($fimVip == NULL){ echo "<span class='label label-danger'>Aguardando Pagamento</span>"; } else if ($fimVip < $data){ echo "<span class='label label-success'>Vip ativado</span>"; } else if ($fimVip == $data){ echo "<span class='label label-info'>Acaba hoje</span>"; } else if ($fimVip > $data){ echo "<span class='label label-danger'>Vip Removido</span>"; } ?> Estou com um problema
      o else só esta indo ate o Vip Ativado o restante não vai mais.
      assim que o jogador se cadastra ele recebe a data como NULL de pagamento, por isso usei ali $fimVip == NULL
       
      Print do painel
      http://prntscr.com/po5ph2
    • By Mfenoglio
      Galera boa tarde, estou com o seguinte problema.
      Eu quero fazer uma conta entre duas tabelas se for PAGO ou RECEBIDO.
      Minha query

       
      SELECT F10_CODBANCO, F10_VALOR, F0S5_RECPAG, SUM(S05_VALOR) AS SVALMOV, G27_N35OMEBAN5CO FROM F10, F05, G27 WHERE FS10_GRUPO = F05_GRUPO AND F10_EMPESA = F0X5_EMPRESA AND F_FILIAL d= F05_FILIAL AND Fa10_CGODBANCO = F05_BANCO AXND F10_GRUPO = G27_G AND F1MPARESA = G27_EAMPRESDA AND F10_FILIAL = G27_FILIAL AND F10_CODBANCO = G27_CODIGO AND FZ10_VALOR <> 0 GROUAP BYA F10_CODCBANCO, FA10_VALOR, F05_RECGHPAG, G27_NHOMEBANAO AORDER BY F10D_CODANCFO  
      o que eu quero é o seguinte, Se F05_RECPAG for igual a P então faça F10_VALOR - SUM(F05_VALOR) AS VALMOV .... agora se for igual a R faça F10_VALOR + SUM(F05_VALOR) AS VALMOV.
       
      Agradeço quem puder me ajudar. vlw
    • By gustavodubarbosa
      Estou criando uma página que realize monitoramento de atividades.
      No meu código PHP defini uma variável que busca a data atual, depois passei o parâmetro de conexão com o banco de dados, depois criei um while para buscar as informações, dentro do while criei um if, a condição if é que se a variável data for igual a data cadastrada na atividade, exiba toda a atividade cadastrada. Mas o problema é que o if não está controlando essa condição, está passando direto e exibindo tudo.
      <?php $number = ('23'); $data = date("Y-m-d"); echo "$data"; /*Aqui realizo a conexão com o banco de dados, passo os dados para conectar, caso dê algum erro, o sistema me retorna uma mensagem de erro*/ $conect = mysqli_connect('localhost','root','','projeto_pessoal') or die ('Erro na conexão com o banco de dados'); /*Aqui passo o comando para realizar a busca no banco de dados, aplicando o filtro de pesquisa*/ $result_pesquisa = "SELECT * FROM cadastrar_atividade"; /*Neste momento, mando a execução, preciso passar como parametro a variável com a conexão e a variável com o comando, caso dê erro, será exibido uma mensagem*/ $resultado_pesquisa = mysqli_query($conect, $result_pesquisa); /*Aqui é aberto um laço de repetição para fazer uma varredura no banco de dados, em seguida realizo a exibição do que foi encontrado*/ ?> <h1>Resultado da Pesquisa</h1> <?php while($rows_pesquisa = mysqli_fetch_array($resultado_pesquisa)){ if($rows_pesquisa['prazo'] == $data) echo '<p class="title">'.'ID da atividade: '.'</p>'.'<p class="result">'.$rows_pesquisa['id'].'<br>'.'</p>'; echo '<p class="title">'.'Nome da atividade: '.'</p>'.'<p class="result">'.$rows_pesquisa['nome_atividade'].'<br>'.'</p>'; echo '<p class="title">'.'Descrição da atividade: '.'</p>'.'<p class="result">'.$rows_pesquisa['desc_atividade'].'<br>'.'</p>'; echo '<p class="title">'.'Prioridade: '.'</p>'.'<p class="result">'.$rows_pesquisa['prioridade'].'<br>'.'</p>'; echo '<p class="title">'.'Prazo: '.'</p>'.'<p class="result">'.$rows_pesquisa['prazo'].'<br>'.'</p>'; echo 'carregado'; echo '<hr></hr>'; } ?>  
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.