Doppelter Werte nur einmal aus MYSQL-DB
Mirla
- datenbank
0 suit0 Mirla0 Mirla0 Frank (no reg)0 Mirla
0 Frank (no reg)0 Vinzenz Mai0 Mirla
0 dedlfix
0 Ilja
Hio,
ich habe eine Tabelle in meiner Datenbank, die folgende Struktur hat:
id, gruppe , bezeichnung , ...
.., gruppe 1, abc , ...
.., gruppe 1, def , ...
.., gruppe 1, ghi , ...
.., gruppe 2, jkl , ...
.., gruppe 2, mno , ...
Jede Gruppe möchte ich in einer eigenen Tabelle ausgeben mit dem Gruppennamen (gruppe 1, gruppe 2) als Überschrift.
Muss ich dazu eine verschachtelte MYSQL-Abfrage machen, um die Überschrift nur einmal zu bekommen, oder gibt es dafür eine einfache Lösung, um bestimmte Werte nur einmal auszugeben?
Denn im Moment sähe meine Lösung so aus:
$get1 = "SELECT gruppe FROM ...";
...
while
{
echo $row->gruppe;
$get2 = "SELECT bezeichnung FROM ... WHERE gruppe = '$row->gruppe'";
...
while
{
echo $row->bezeichnung;
}
}
Danke schon mal.
Hm, mit GROUP BY gruppe wird mir aber nur die jeweils erste Zeile dieser Gruppe aus der DB ausgegeben!?
Was ja logisch ist.
Ich bräuchte sowas wie
SELECT ONCE(gruppe), ... o.ä.
Ich bräuchte sowas wie
SELECT ONCE(gruppe), ... o.ä.
Und wie bidde soll das funktionieren? Wie soll das Resultat aussehen, welches du von der Datenbank bekommst?
Frank
Ja, je mehr ich drüber nachdenk, desto mehr zweifel ich an der Umsetzung :D
Also ist die Verschachtelung die einzige Lösung? (außer vielleicht mitzählen, ob der Gruppenname schon mal ausgegebn wurde!?)
Hallo,
SELECT DISTINCT gruppe FROM ...
... ist übrigens kein gültiger Tabellenname ;)
Ciao, Frank
Hallo,
ich habe eine Tabelle in meiner Datenbank, die folgende Struktur hat:
id, gruppe , bezeichnung , ...
.., gruppe 1, abc , ...
.., gruppe 1, def , ...
.., gruppe 1, ghi , ...
.., gruppe 2, jkl , ...
.., gruppe 2, mno , ...
Jede Gruppe möchte ich in einer eigenen Tabelle ausgeben mit dem Gruppennamen (gruppe 1, gruppe 2) als Überschrift.
ich zitiere einfach mich selbst:
hört sich nach einer Kreuztabelle an :-)
MySQL bietet keine eingebaute Unterstützung für Kreuztabellen :-(
Was Du tun kannst, entnimm bitte diesem Archivthread.
Freundliche Grüße
Vinzenz
Hui, das sieht umfangreich aus :D
Danke, werds mir mal zu Gemüte führen :-)
echo $begrüßung;
Jede Gruppe möchte ich in einer eigenen Tabelle ausgeben mit dem Gruppennamen (gruppe 1, gruppe 2) als Überschrift.
Muss ich dazu eine verschachtelte MYSQL-Abfrage machen, um die Überschrift nur einmal zu bekommen, oder gibt es dafür eine einfache Lösung, um bestimmte Werte nur einmal auszugeben?
Ja, gib sie nur einmal aus. Du suchst einen so genannten Gruppenwechsel. Sieht in PHP ungefähr so aus
$gruppe = null;
while ($row = fetch()) {
if ($gruppe != $row->gruppe) {
if ($gruppe != null) {
// alte tabelle schließen
}
// neue tabelle beginnen
$gruppe = $row->gruppe;
}
}
if ($gruppe != null) {
// alte tabelle schließen
}
echo "$verabschiedung $name";
yo,
ergänzend noch zu sagen, dass man dazu über die gruppen auch sortieren muss bei der abfrage.
Ilja