Doppelte Einträge nicht ausgeben

greenslot

Mitglied
Hallo,

ich habe eine Tabelle in einer Datenbank mit aktuell ca. 30 Zeilen. Da steht jeweils ein Datum und ein Eintrag drin.
Das Datum unterscheidet sich jetzt aber nicht bei jedem Eintrag bzw. es gibt von einem Tag mehrere Einträge.
Ich würde jetzt gerne eine Ausgabe erstellen und die doppelten Daten (Mehrzahl von Datum? :)) nicht ausgeben, sondern nur wenn das Datum nicht das selbe ist, wie das vorige.

# Datum - Eintrag
# Eintrag
# Eintrag
# Datum - Eintrag
# Datum - Eintrag
# Eintrag
# ...

Wie würdet ihr das lösen?

Mit einer if Verzweigung? Nur wie mache ich das mit dem Datums-Vergleich, wenn die Ausgabe über eine while-Schleife läuft? :confused:
 
Hi,

du musst dir das letzte ausgegebene Datum merken und wenn dein aktueller Datensatz ein anderes Datum hat, kannst du das ausgeben (und natürlich als letztes Datum merken).

BTW: Erfinderische Informatiker haben sich das Wort Datumse ausgedacht, damit man nichts verwechselt.. ;D

Best regards
 
Genau, mit einem if.
PHP:
while($row = mysql......){
  if($lastDate != $row['datum']){
    echo $row['datum'];
  }
  echo $row['eintrag'];
  $lastDate = $row['datum'];
}
 
Genau, mit einem if.
PHP:
while($row = mysql......){
  if($lastDate != $row['datum']){
    echo $row['datum'];
  }
  echo $row['eintrag'];
  $lastDate = $row['datum'];
}

Hast du schon mal was von DISTINCT oder GROUP BY gehört?
Filterfunktionen sind grundsätzlich dem RDBS zu überlassen weil es einfach performanter ist, außerdem reduziert sich die übertragene Datenmenge.
 
@Naprofis: Ich glaube, du hast die Ausgangslage, bzw. Das gewünschte Resultat nicht verstanden.

DISTINCT und GROUP BY sind schon gut, Dann muss er aber pro Datum ein weiteres SQL absetzen um die Details auszulesen. Und das ist bei mehreren Datum wiederum weniger performant.
Man könnt natürlich innerhalb des SQLs mit Variablen auf das Datum prüfen und ggf. dann ein Leerstring zurückgeben, aber ich glaube das ist hier zu kompliziert.
 
DISTINCT und GROUP BY sind schon gut, Dann muss er aber pro Datum ein weiteres SQL absetzen um die Details auszulesen. Und das ist bei mehreen Datum wiederum weniger performant.
Man könnt natürlich innerhalb des SQLs mit Variablen auf das Datum prüfen und ggf. dann ein Leerstring zurückgeben, aber ich glaube das ist hier zu kompliziert.

OK, hab mich verlesen, die Antwort ist aber trotzdem nein. Es gibt ja noch GROUP_CONCAT ;)
 
Jepp, gibts. Sofern man HTML-Formatierungen ins SQL reinqzuetschen will, da für den GROUP_CONCAT() als Seperator bereits bekannt sein soll, wie das nachher aussieht. Ist eine Frage der Architektur. Ich trenne Datenabfrage und Darstellung.
 
Zurück