php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 05.09.2005, 14:59  
Gast
 
Beiträge: n/a
Standard 3 Tabellen verbunden -- Ausgabe in einer Spalte

Ich habe 3 Tabellen:

tblmitglieder
->mitglieder_id
->vorname
->nachname
->geburtsdatum

tblmitgliedertaetigkeit
->mitglieder
->taetigkeiten

tbltaetigkeit
->taetigkeit_id
->taetigkeit


Bisher bin ich soweit gekommen! Ich zeige mal das IST-Ergebnis und darunter das SOLL:
Code:
Ausgabe (VORHER):
Vorname1 Nachname1 | Taetigkeit1 | Geburtsdatum1
Vorname1 Nachname1 | Taetigkeit2 | Geburtsdatum1
Vorname2 Nachname2 | Taetigkeit1 | Geburtsdatum2
Vorname2 Nachname2 | Taetigkeit2 | Geburtsdatum2
Vorname2 Nachname2 | Taetigkeit3 | Geburtsdatum2
Vorname3 Nachname3 | Taetigkeit1 | Geburtsdatum3


Ausgabe (IST):
Vorname1 Nachname1 | Taetigkeit1 / Taetigkeit2 /               | Geburtsdatum1
Vorname2 Nachname2 | Taetigkeit1 / Taetigkeit2 / Taetigkeit3 / | Geburtsdatum2
Vorname3 Nachname3 | Taetigkeit1 /                             | Geburtsdatum3


Ausgabe (SOLL):
Vorname1 Nachname1 | Taetigkeit1 / Taetigkeit2               | Geburtsdatum1
Vorname2 Nachname2 | Taetigkeit1 / Taetigkeit2 / Taetigkeit3 | Geburtsdatum2
Vorname3 Nachname3 | Taetigkeit1                             | Geburtsdatum3

Mein Code, der Ausgabe (IST) erzeugt:
Code:
$abfrage = "Select DISTINCT tblmitglieder.mitglieder_id, tblmitglieder.vorname, tblmitglieder.nachname, tblmitglieder.geburtstag From tblmitgliedertaetigkeit INNER JOIN tblmitglieder ON mitglieder_id = tblmitgliedertaetigkeit.mitglieder INNER JOIN tbltaetigkeit ON taetigkeit_id = tblmitgliedertaetigkeit.taetigkeiten";

$ergebnis = mysql_db_query("datenbank", $abfrage);

while ($row = mysql_fetch_array($ergebnis)) {
	extract($row);

echo "<tr><td>$vorname $nachname</td><td>";

$abfrage1 = "Select tbltaetigkeit.taetigkeit From tblmitgliedertaetigkeit INNER JOIN tblmitglieder ON mitglieder_id = tblmitgliedertaetigkeit.mitglieder INNER JOIN tbltaetigkeit ON taetigkeit_id = tblmitgliedertaetigkeit.taetigkeiten WHERE mitglieder_id =$mitglieder_id";

$ergebnis1 = mysql_db_query("datenbank", $abfrage1);

while ($row1 = mysql_fetch_array($ergebnis1)) {
extract($row1);

echo $taetigkeit . "/";
}

echo "
</td><td>
$geburtstag</td>
</tr>
";
Meine Frage:
Ich habe die Verbindung zwischen den 3 Tabellen hergestellt. Mit der Zwischentabelle tblmitgliedertaetigkeit kann ich mehrere Tätigkeiten unter mehreren Mitgliedern aufteilen. Die Ausgabe kam zuerst in verschiedenen (doppelten) Zeilen, die sich nur in der Tätigkeit unterschieden. Jetzt bin ich soweit, dass die Tätigkeit sobald es mehr als eine ist, in der gleichen Spalte ausgegeben wird. Mich stört nur noch der "/" am Ende der Zelle. Gibt es da noch eine andere Lösung, habe bisher nichts gefunden und solche Tabellen-Verbindungen dürften doch recht häuftig vorkommen.[/code]
  Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 05.09.2005, 15:42  
Erfahrener Benutzer
 
Registriert seit: 29.10.2004
Beiträge: 1.783
derHund
Standard

alles in ein array packen und dann imploden.
__________________
derHund ist offline   Mit Zitat antworten
Alt 06.09.2005, 06:55  
Gast
 
Beiträge: n/a
Standard

Kannst du mir hierfür einen Code sagen?

Mein Problem ist, dass in tblmitglieder ein Mitglied mehrere Tätigkeiten aus tbltaetigkeit haben kann.

Deswegen hab ich 3 Tabellen die ich mit dem INNER JOIN verbunden hab.

Aber bei der Ausgabe wird dann alles doppelt aufgelistet sobald ein Mitglied mehr wie eine Taetigkeit besitzt.
  Mit Zitat antworten
Alt 06.09.2005, 08:30  
Gast
 
Beiträge: n/a
Standard Re: 3 Tabellen verbunden -- Ausgabe in einer Spalte

Zitat:
Mich stört nur noch der "/" am Ende der Zelle.
Also wenn dich wirklich nur der "/" in der Ausgabe stört würde ich folgendes versuchen: Ich geh mal davon aus, dass du in $row1 wirklich nur die Tätigkeiten der Mitglieder abspeicherst. Wenn dem so ist, sollte es eigentlich genügen, wenn du den Code an dieser Stelle folgendermaßen abänderst:

Zitat:
$ergebnis1 = mysql_db_query("datenbank", $abfrage1);

$i=0;
while ($row1 = mysql_fetch_assoc($ergebnis1)) {
extract($row1);

if($i==0)
echo $taetigkeit ;
else
echo "/".$taetigkeit;

$i++;
}
Du setzt also den "/" einfach vor die Variable $taetigkeit, es sei denn, die Schleife wird zum ersten Mal durchlaufen. Du solltest außerdem statt mysql_fetch_array besser mysql_fetch_assoc oder mysql_fetch_row verwenden, da beim Verwenden von mysql_fetch_array alle Daten zweimal im Array vorkommen - einmal mit indiziertem Index und einmal mit assoziativem Index.

Ich hoffe ich hab deine Fragestellung richtig verstanden :wink:
  Mit Zitat antworten
Alt 06.09.2005, 10:43  
Gast
 
Beiträge: n/a
Standard

Ja NiKrYss,

hab eben deine Neuerungen eingebaut. Läuft alles wunderbar, danke auch für den Tip, bin noch ziemlich frisch in der Lernphase
  Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Durch Spalte definieren, welche Spalte zu ändern ist. CC84 Datenbanken 5 28.11.2006 10:26
2 Tabellen, 1 Ausgabe (+Dubletten abfangen) madSoul Datenbanken 2 04.09.2006 10:37
Ausgabe der Verknüpften tabellen über php skript PHP Tipps 2006 4 07.02.2006 15:04
Zwei Tabellen in einen Array + Ausgabe (no primkey) PHP Tipps 2007 6 07.12.2005 10:14
Abfrage aus Datenbank mit Tabellen und Ausgabe in index.php PHP Tipps 2005-2 4 23.10.2005 11:04
SQL - Eine Spalte aus mehreren Tabellen abfragen PHP Tipps 2005-2 4 10.10.2005 15:24
tabellen ausgabe formatieren PHP Tipps 2005-2 4 08.09.2005 18:45
2 Tabellen verknüpfen + ausgabe PHP Tipps 2005-2 3 05.09.2005 13:30
Anhand Union Spalte aus anderen Tabellen selekt. und sort. Datenbanken 1 02.08.2005 11:34
problem bei ausgabe einer abfrage aus 2 Tabellen Lia PHP Tipps 2005-2 2 28.07.2005 17:30
eine spalte von 2 tabellen vergleichen Sclot PHP Tipps 2005 2 22.03.2005 19:00
Ausgabe von Tabellen im TXT-Format PHP Tipps 2004-2 3 12.12.2004 20:54
[Erledigt] FormMailer eMail ausgabe in tabellen form? PHP-Fortgeschrittene 2 19.11.2004 08:50
Mehrere Tabellen abfragen und Ausgabe ordnen Datenbanken 2 16.10.2004 20:04
Script um MySQL Tabellen untereinander updaten zu können PHP Tipps 2004 2 02.06.2004 16:28

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
select ergebnis in eine spalte, select ergebnis in spalten, php join ausgabe selber spaltenname, join \in einer spalte\, join mehrerer tabellen php echo, join 3 tabellen doppelt ergebnis, tabellen verbunden, select distinct aus verbundenen tabellen, php code tabellenform mit spalten, echo array ausgabe in tabellenform, php ausgabe alles in einer zeile, abfrage mit zwischentabelle ergebnis in einer zeile

Alle Zeitangaben in WEZ +1. Es ist jetzt 14:56 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.