Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
<?php
$tabelas_padrao="orcamentos,clientes,contato_clientes,destinos_escolhidos";
$opcoes_de_pesquisa="INNER JOIN destinos ON destinos_escolhidos.destino=destinos.destino WHERE (orcamentos.data_cad BETWEEN ('$data_inicial_consulta') AND ('$data_final_consulta')) AND (vendedor_id LIKE '%$vendedor_id%') AND (orcamentos.status_financeiro_oc LIKE '%".$_GET['f_status_financeiro_oc']."%') AND (orcamentos.status_oc LIKE '%".$_GET['f_status_oc']."%') AND (destinos.tipo LIKE '%".$_GET['tipo_destino']."%') AND (destinos_escolhidos.destino LIKE '%".$_GET['destino']."%')";
/PAGINAÇÂO/
$sql_busca2=mysql_query("SELECT $nome_op$campos FROM $tabelas_padrao $opcoes_de_pesquisa $ordem");
$total_encontrado1=mysql_num_rows($sql_busca2);
$total_encontrado2=$total_encontrado1/$max;
$pag_total=$pag+1;$sql_busca1=mysql_query("SELECT $nome_op$campos FROM $tabelas_padrao $opcoes_de_pesquisa $ordem LIMIT $inicio,$max");
if($total_encontrado1=="0"){
echo '<div class="itens2 detalhe" style="width:100%">Nenhum resultado encontrado !</div>';
}
while($dados=mysql_fetch_array($sql_busca1)){
if($dados['fechado']==""){
$dados['fechado']="Não Fechado";
}
?>
<div id="resultado">
<?php
if($nome_op=="nome,"){
?>
<div class="itens2 detalhe" style="width:23%"><?php echo $dados['nome']; ?></div>
<?php
}
$total_campos=explode(',',$campos);
for($ii=0; $ii<count($total_campos); $ii++){
?>
<?php
if($total_campos[$ii]=="email"){
$width_coluna="25%";
}else{
$width_coluna="";
}
if($width_coluna==""){
$width_coluna="13%";
}
?>
<div class="itens2 detalhe" style="width:<?php echo $width_coluna; ?>;"><?php echo $dados[$total_campos[$ii]]; ?></div>
<?php
}
?>
<div class="itens2 detalhe" style="width:2%; height:18px"> <center><a href="#"><img src="../images/more.png" width="20" height="20"></a></center></div>
</div>
<?php
}
?>
Tenho o seguinte codigo acima, ele faz uma consulta no banco em varias tabelas e depois retorna se encontra resultados lembrando que a variavel $campos, é um $_GET['campos'] que vem de um form onde o usuario seleciona qual campos ele quer exibir.
o problema é que ele repete registros ou seja quando ele encontra um registro na tabela nome ele duplica pela quantidade de campos em todas as tabelas.
O motivo para isso geralmente é simples: Tem alguma tabela solta, que não está no produto cartesiano das demais multiplicando então a quantidade de registros.
Eu sugiro que você cole aqui o select como ele é executado ao invés de colar um monte de código.
<?php
$tabelas_padrao="orcamentos,clientes,contato_clientes,destinos_escolhidos";
//clientes,orcamentos.cliente_id=clientes.id,contato_clientes.id_cliente=clientes.id,destinos_escolhidos.id_orcamento=orcamentos.id
$opcoes_de_pesquisa=" INNER JOIN destinos ON destinos_escolhidos.destino=destinos.destino WHERE (orcamentos.data_cad BETWEEN ('$data_inicial_consulta') AND ('$data_final_consulta')) AND (vendedor_id LIKE '%$vendedor_id%') AND (orcamentos.status_financeiro_oc LIKE '%".$_GET['f_status_financeiro_oc']."%') AND (orcamentos.status_oc LIKE '%".$_GET['f_status_oc']."%') AND (destinos.tipo LIKE '%".$_GET['tipo_destino']."%') AND (destinos_escolhidos.destino LIKE '%".$_GET['destino']."%') group by orcamentos.id";
$sql_busca1=mysql_query("SELECT $nome_op$campos FROM $tabelas_padrao $opcoes_de_pesquisa $ordem LIMIT $inicio,$max");
if($total_encontrado1=="0"){
echo '<div class="itens2 detalhe" style="width:100%">Nenhum resultado encontrado !</div>';
}
while($dados=mysql_fetch_array($sql_busca1)){
quem não estiver entendendo por favor pergunte que eu ajudo.