Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Vou procurar explicar o que esta acontecendo. Tenho o seguinte código:
<table><tr><th>Nome</th><th>Cidade</th><th>Data Rec. Venc.</th><th>Previsão</th><th>Marcado</th><th>Ed.</th><tr><?php$sel_marcado = "SELECT * FROM tab_marcado";$exec_sel_marcado = mysql_num_rows(mysql_query($sel_marcado));if ($exec_sel_marcado <= 0) {$reciclagens = "SELECT * FROM tab_reciclagem WHERE num_ativo = '1' AND num_marcado = '1'";} else {$reciclagens = "SELECT * FROM tab_reciclagem, tab_marcado WHERE num_ativo = '1' AND num_marcado = '1' ORDER BY dt_marcado_inicio ASC";}$exec_reciclagens = mysql_query($reciclagens);while ($reciclagens = mysql_fetch_array($exec_reciclagens)) {$id_reciclagem = $reciclagens['id_reciclagem'];$num_cidade = $reciclagens['num_cidade'];$cidade = "SELECT * FROM tab_cidade WHERE id_cidade = '$num_cidade'";$exec_cidade = mysql_query($cidade);$cidade = mysql_fetch_array($exec_cidade);$dt_rec_venc = $reciclagens['dt_rec_venc'];$dt_rec_venc_br = substr($dt_rec_venc,8,2) . "/" . substr($dt_rec_venc,5,2) . "/" . substr($dt_rec_venc,0,4);$dt_rec_prev = $reciclagens['dt_rec_prev'];$dt_rec_prev_br = substr($dt_rec_prev,5,2) . "/" . substr($dt_rec_prev,0,4);?><tr><td><?php echo $reciclagens['str_nome']; ?></td><td><?php echo $cidade['str_cidade']; ?></td><td><?php echo $dt_rec_venc_br; ?></td><td><?php echo $dt_rec_prev_br; ?></td><td><?php$marcado = "SELECT * FROM tab_marcado WHERE id_reciclagem_marc = '$id_reciclagem'";$exec_marcado = mysql_query($marcado);$marcado = mysql_fetch_array($exec_marcado);if ($marcado == "") {?><form action="reciclagem_marcada.php" method="POST"><input type="text" name="dt_marcada_inicio" size="8" onKeyPress="DataHora(event, this)" maxlength="10"> à<input type="text" name="dt_marcada_fim" size="8" onKeyPress="DataHora(event, this)" maxlength="10"><input type="hidden" name="id_rec_marcada" value="<?php echo $id_reciclagem; ?>"><input type="submit" value="ok"></form><?php} else {$rec_dt_marcado_inicio = $marcado['dt_marcado_inicio'];$rec_dt_marcado_inicio_br = substr($rec_dt_marcado_inicio,8,2) . "/" . substr($rec_dt_marcado_inicio,5,2) . "/" . substr($rec_dt_marcado_inicio,0,4);$rec_dt_marcado_fim = $marcado['dt_marcado_fim'];$rec_dt_marcado_fim_br = substr($rec_dt_marcado_fim,8,2) . "/" . substr($rec_dt_marcado_fim,5,2) . "/" . substr($rec_dt_marcado_fim,0,4);echo $rec_dt_marcado_inicio_br . " à " . $rec_dt_marcado_fim_br;}?></td><td><a href="editar_reciclagem_marcada.php?id=<?php echo $reciclagens['id_reciclagem']; ?>&marcada=1"><img src="images/btn_editar.png" border="0" width="16" height="16"></a></td></tr><?php } ?></table>
Como podem notar no código $reciclagens = "SELECT * FROM tab_reciclagem, tab_marcado WHERE num_ativo = '1' AND num_marcado = '1' ORDER BY dt_marcado_inicio ASC"; eu pego informações de 2 tabelas com algumas condições e faço o loop com o while para aparecer todos os dados do select. O problema é que ele esta me retornando várias vezes um mesmo registro, por exemplo, se tem 6 registros na tab_marcado ele vai me retornar 6 vezes o mesmo dado da tab_reciclagem para depois ir para o próximo id.
Espero que eu possa ter me expressado bem. Alguém sabe aonde esta o erro?
Grato
Carregando comentários...