PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : PHP und Berichte



NoNameMT
05.10.2010, 07:03
Hey Leute,

also zu meinem "Problem": Ich habe in PHP ein Script gemacht, was mir Events in einer Datenbank speichert und ich dann die "Teilnehmer" hinzufügen kann. Das klappt auch schon alles wunderbar und gut. Nur jetzt habe ich eine Frage. Ich wollte nämlich jetzt so eine Art "Bericht" wie aus access erstellen. Also So:
Event 1
- Teilnehmer 1
- Teilnehmer 2
- Teilnehmer 3
Siehe Screenshot am besten (da habe ich das in Access mal nachgebaut)
http://www1.xup.in/exec/ximg.php?fid=96918863
Jetzt meine Frage:
Ich habe nen Query, was genau so aufgebaut ist, wie das, womit ich den Access bericht erstellt habe. Nur bei mir gibt er vor jedem Teilnehmer nochmal das Event aus. Sprich:
Event1 : Teilnehmer 1
Event1 : Teilnehmer 2
Event1 : Teilnehmer 3

Wie kriege ich es hin, dass er mir nur einmal den Namen ausgibt und mir dann die passenden Teilnehmer anzeigt. Halt eben wie da in Access.
Ich hoffe ich habe das genau genug geschrieben. Ich brauche auch nicht zwingend komplette Codes, ein paar Snippets als Denkanstoss reichen mir.

Greetz NoNameMT

ghosty
05.10.2010, 07:50
Hallo,
Ich hoffe ich habs richtig verstanden.

du musst ja nicht alles ausgeben lassen.


<?php
$ergebnis = mysql_query("SELECT * FROM events");
while($row = mysql_fetch_array($ergebnis))
{
echo $row['teilnehmer'].'<br />';
}
?>

So werden alle Teilnehmer ausgegeben.Das kannst du jetzt ändern mit $row[''].

Edit/
Kann irgendwie keine Code Tags machen mit dem iPhone.

NoNameMT
05.10.2010, 08:00
Hmm okay, sowas hatte ich auch schon ausprobiert nur es ist ist:
Meine Datenbank ist wie folgt aufgebaut
Es gibt drei Tabellen:
events
teilnehmer
teilnehmer_an

teilnehmer_an ist dabei die Relationstabelle und beinhaltet die spalten
teilnehmer_id & event_id
Damit stelle ich die Beziehung zwischen den beiden her.
Mein Query sieht dann wie folgt aus:

$result = mysql_query("SELECT event.id, event.name, teilnehmer.id, teilnehmer.name FROM event RIGHT JOIN (teilnehmer RIGHT JOIN teilnahme_an ON teilnehmer.id = teilnahme_an.teilnehmer_id) ON event.id = teilnahme_an.event_id")Das gibt mir die entsprechenden Daten aus. Nur halt vor jedem Teilnehmer auch das Event. Ich hätte das aber gerne so wie in access, also einmal den Event Namen und dazu dann die entsprechenden Teilnehmer. Wie auf dem Screenshot.

100
05.10.2010, 12:45
Unabhängig vom Rest das Scriptes gäbe es doch eine einfache Möglichkeit. Anscheinend kannst du bereits sowohl das Event, als auch den Teilnehmernamen auslesen. Wenn du dir dann eine temporäre Variable "anlegst" (zb $letztes) und ihr immer die aktuelle Event ID oder den Event Namen zuordnest, dann kannst du sagen
if($aktuellesEvent!=$letztes) {
$letztes = $aktuellesEvent;
<Event ausgeben>
}

NoNameMT
05.10.2010, 12:58
Jau danke 100
So klappts wunderbar :) Ich hatte auch schonmal vorher so einen Ansatz gehabt, hatte den aber Verworfen, weil ich den falsch angegangen bin. So einfach kanns manchmal sein. Naja ich sitze jetzt auch wieder seit mehreren Tagen vor dem Code und sehe langsam den ganzen Wald vor lauter Bäumen nicht mehr.