Como não mostrar dados repetidos no loop do select mysql?

Enviada por Wilerson Vaz 
Wilerson Vaz
Como não mostrar dados repetidos no loop do select mysql?
08 de January de 2015 às 04:20AM
Boa noite pessoal do fórum, estou com uma dúvida em um sql que é a seguinte, eu tenho duas tabelas, a tabela pai, e a tabela filha, onde a tabela filha recebe o id da tabela pai como chave estrangeira, porém, não sei como mostrar os dados inseridos de forma organizada, eu preciso que os dados apareçam na tela da seguinte forma:

Titulo 1 da tabela pai:
Dado 1 da tabela filha relacionado ao id 1 da tabela pai
Dado 2 da tabela filha relacionado ao id 1 da tabela pai
Dado 3 da tabela filha relacionado ao id 1 da tabela pai

Título 2 da tabela pai:
Dado 1 da tabela filha relacionado ao id 2 da tabela pai
Dado 2 da tabela filha relacionado ao id 2 da tabela pai

e assim por diante, porém, os meus dados estão aparecendo assim:

Título 1 da tabela pai:
Dado 1 da tabela filha relacionado ao id 1 da tabela pai

Título 1 da tabela pai:
Dado 2 da tabela filha relacionado ao id 1 da tabela pai

Título 1 da tabela pai:
Dado 3 da tabela filha relacionado ao id 1 da tabela pai

Título 2 da tabela pai:
Dado 1 da tabela filha relacionado ao id 2 da tabela pai

Título 2 da tabela pai:
Dado 1 da tabela filha relacionado ao id 2 da tabela pai

desde já agradeço pelo esclarecimento!!!


o Select está mais ou menos assim:

SELECT * FROM <tabela pai> LEFT JOIN <tabela filha> ON (pai.id_tabelaPai = filha.id_tabelaPai)
José Ângelo Lefundes Coelho
Re: Como não mostrar dados repetidos no loop do select mysql?
14 de January de 2015 às 02:43PM
Caso esteja trabalhando com dados e data pode pensar assim:

o q você deve fazer é criar uma variavel pra guardar o valor da data anterior. assim q a data mudar, você escreve a data.
assim, crie essa variavel com valor em branco ("") antes de comecar o while.
na primeira linha do while, compare essa data com a data do registro atual do banco de dados. se for diferente, você escreve a data. e depois disso, você grava, nessa variavel, o valor da data q vem do banco.

assim, a data so vai ser escrita quando ela mudar.
Wilerson Vaz
Re: Como não mostrar dados repetidos no loop do select mysql?
15 de January de 2015 às 11:52PM
Ficou da seguinte forma

SELECT * FROM <tblPai> INNER JOIN <tblFilha> ON (tblPai.idtblPai = tblFilha.idtblPai) WHERE idUsuario = SESSAO[idUsuario]

ESCREVE "<ul>";
AUX = ""

WHILE (ROW = mysql->fetchObject)
SE(AUX != ROW->titulo)
{

SE(AUX != "")
{
ESCREVA "</ul></li>";
}

ESCREVA "<li><strong>ROW->titulo</strong><ul>";
AUX = ROW->titulo;
}

ESCREVA "<li>ROW->subtitulo</li>";

//FECHA WHILE


E ficou certinho, muito obrigado... Obs.. tentei escever o código de uma forma que dê para entender em outras linguages, mas eu fiz em php, muito obrigado José
Você precisa estar logado no PHPBrasil.com para poder enviar mensagens para os nossos fóruns.

Faça o login aqui.