so. jetzt bin ich soweit. lang lang hats gedauert. hier nun die tabellen. [code] CREATE TABLE WK_Gewichtsklassen ( GKId int(11) NOT NULL auto_increment, GKkg varchar(10) NOT NULL default '', GKSex char(1) NOT NULL default 'M', PRIMARY KEY (GKId), UNIQUE KEY GewichtsklassenKey (GKkg,GKSex) ) TYPE=MyISAM; CREATE TABLE WK_Teilnehmer ( TNId int(11) NOT NULL auto_increment, TNName varchar(50) NOT NULL default '', TNVorname varchar(50) NOT NULL default '', TNSex char(1) NOT NULL default 'M', GKId int(11) NOT NULL default '0', PRIMARY KEY (TNId), UNIQUE KEY TeilnehmerKey (TNName,TNVorname) ) TYPE=MyISAM; CREATE TABLE WK_Termine ( TerId int(11) NOT NULL auto_increment, TerTermin datetime NOT NULL default '0000-00-00 00:00:00', TerWKNummer int(11) NOT NULL default '0', PRIMARY KEY (TerId), UNIQUE KEY TermineKey (TerTermin,TerWKNummer) ) TYPE=MyISAM; CREATE TABLE WK_Termine_Teilnehmer ( TerId int(11) NOT NULL default '0', TNId int(11) NOT NULL default '0', Punkte int(11) NOT NULL default '0', UNIQUE KEY Termine_Teilnemer (TerId,TNId), KEY GKId (TerId), KEY TNId (TNId) ) TYPE=MyISAM; [/code] zuerst müssen viele viele gewichtsklassen definiert werden. und auch welchen geschlecht sie angehören. w/m => [b]F[/b]emale / [b]M[/b]ale [php]$sql = "INSERT INTO WK_Gewichtsklassen (GKkg,GKSex) VALUES ('".$gewichtsklasse_in_kg_von_bis."','".$geschlecht_F_M."')";[/php] [code] # DEMO ZUM TEST INSERT INTO WK_Gewichtsklassen (GKId, GKkg, GKSex) VALUES (1, '10-15', 'M'); INSERT INTO WK_Gewichtsklassen (GKId, GKkg, GKSex) VALUES (2, '10-20', 'F'); INSERT INTO WK_Gewichtsklassen (GKId, GKkg, GKSex) VALUES (3, '16-25', 'M'); INSERT INTO WK_Gewichtsklassen (GKId, GKkg, GKSex) VALUES (4, '21-38', 'F'); [/code] jetzt kannst du ein FORM machen, in dem du neue user(teilnehmer) anlegen kannst. dort MUSS das geschlecht definiert werden. F/M (über radiobuttons) und der insert der daten in die db [php]$sql = "INSERT INTO WK_Teilnehmer (TNName,TNVorname,TNSex) VALUES ('".$name."','".$vorname."','".$geschlecht."')";[/php] und wieder ein paar demo-daten. [code] # DEMO ZUM TEST INSERT INTO WK_Teilnehmer (TNId, TNName, TNVorname, TNSex, GKId) VALUES (1, 'Schmitz', 'Thomas', 'M', 0); INSERT INTO WK_Teilnehmer (TNId, TNName, TNVorname, TNSex, GKId) VALUES (2, 'Müller', 'Martin', 'M', 0); INSERT INTO WK_Teilnehmer (TNId, TNName, TNVorname, TNSex, GKId) VALUES (3, 'Bach', 'Thorsten', 'M', 0); INSERT INTO WK_Teilnehmer (TNId, TNName, TNVorname, TNSex, GKId) VALUES (4, 'Bachhuber', 'Kati', 'F', 0); INSERT INTO WK_Teilnehmer (TNId, TNName, TNVorname, TNSex, GKId) VALUES (5, 'Schneider', 'Martina', 'F', 0); [/code] diese daten kannst du z.b. als teilnehmertabelle ausgeben und erst einmal die gewichtsklasse definieren. bei der ausgabe darfst du die id natürlich nicht vergessen. in diesem forumal musst du diese daten als selectfeld ausgeben. [php]$sql = "SELECT GKId,GKkg FROM WK_Gewichtsklassen WHERE TNSex = '".$geschlecht."'";[/php] durch die WHERE einschränkung bekommst du nun schon nur die klassen für das geschlecht des entsprechenden teilnehmers. wenn du nun die gewichtsklasse ausgewählt hast, muss die noch gespeichert werden. [php]$sql = "UPDATE WK_Teilnehmer SET GKId = '".$gewichtsklassen_id."' WHERE TNId = '".$ausgewaehlte_teilnehmer_id."'";[/php] [code] # DEMO UPDATE WK_Teilnehmer SET GKId = '1' WHERE TNId = '1'; UPDATE WK_Teilnehmer SET GKId = '1' WHERE TNId = '2'; UPDATE WK_Teilnehmer SET GKId = '3' WHERE TNId = '3'; UPDATE WK_Teilnehmer SET GKId = '2' WHERE TNId = '4'; UPDATE WK_Teilnehmer SET GKId = '2' WHERE TNId = '5'; [/code] jetzt kannst du auch schon ausgeben lassen, welcher teilnehmer zu welcher gewichtsklasse gehört. [code] SELECT * FROM WK_Teilnehmer LEFT OUTER JOIN WK_Gewichtsklassen USING(GKId) [/code] nun musst du termine und eine wettkampfnummer definieren. [php] $sql = "INSERT INTO WK_Termine (TerTermin,TerWKNummer) VALUES ('".$termin."','".$wknummer."')"; //$termin muss in diesem format vorliegen. (ohne die ') => 'JJJJ-MM-TT HH:MM.SS' [/php] und wieder demo-daten [code] # DEMO INSERT INTO WK_Termine (TerId, TerTermin, TerWKNummer) VALUES (1, '2003-10-03 16:00:00', 1); INSERT INTO WK_Termine (TerId, TerTermin, TerWKNummer) VALUES (2, '2003-10-03 16:00:00', 2); [/code] jetzt hast du termine, aber noch keine teilnehmer an diesen terminen. die termine wie die teilnehmer oben schon brav auflisten und an ein form auch die id des termins mitgeben. du bist nun bei termin 1 und willst teilnehmer hinzufügen. ganz einfach. nun hast du wieder eine list der teilnehmer und damit nun auch zusätzlich die id des teilnehmers. [code] #### ich spare mir ab jetzt einfach die SQL -commands ... :) # termin ist bekannt : 1 # teilnehmer ist bekannt : 1 INSERT INTO WK_Termine_Teilnehmer (TerId ,TNId) VALUES ('1', '1'); ## und # termin ist bekannt : 2 # teilnehmer ist bekannt : 4 INSERT INTO WK_Termine_Teilnehmer (TerId ,TNId) VALUES ('2', '4'); ## und weitere verknüpfungen. INSERT INTO WK_Termine_Teilnehmer (TerId ,TNId) VALUES ('1', '2'); INSERT INTO WK_Termine_Teilnehmer (TerId ,TNId) VALUES ('1', '3'); INSERT INTO WK_Termine_Teilnehmer (TerId ,TNId) VALUES ('2', '5'); [/code] jetzt kannst du das auch schon ausgeben.... :) [code] SELECT * FROM WK_Termine LEFT OUTER JOIN WK_Termine_Teilnehmer USING(TerId) LEFT OUTER JOIN WK_Teilnehmer USING(TNId) LEFT OUTER JOIN WK_Gewichtsklassen USING(GKId) [/code] nun musst du punkte eintragen können. ich habe das so gemacht, dass man für jeden match punkte vergeben kann. sie summe ist das für euren verein. aber so kannst du auch sehen, wieviele punkte ein teilnehmer von euch erkämpft hat. das ganze noch brav nach terminen getrennt.:) für das update brauchst du die id des teilnehmers und die des termins. [CODE] UPDATE WK_Termine_Teilnehmer SET Punkte = '45' WHERE TerId = '1' AND TNId = '1'; UPDATE WK_Termine_Teilnehmer SET Punkte = '3' WHERE TerId = '1' AND TNId = '2'; UPDATE WK_Termine_Teilnehmer SET Punkte = '4' WHERE TerId = '1' AND TNId = '3'; UPDATE WK_Termine_Teilnehmer SET Punkte = '23' WHERE TerId = '2' AND TNId = '4'; UPDATE WK_Termine_Teilnehmer SET Punkte = '7' WHERE TerId = '2' AND TNId = '5'; [/CODE] und wieder ne ausgabe zum anschauen .... :) [code] SELECT * FROM WK_Termine LEFT OUTER JOIN WK_Termine_Teilnehmer USING(TerId) LEFT OUTER JOIN WK_Teilnehmer USING(TNId) LEFT OUTER JOIN WK_Gewichtsklassen USING(GKId) [/code] das ganze kannst du auch gruppieren, wie du willst. musst halt die normalen regeln bei group beachten. [code] SELECT TerTermin,SUM(Punkte) FROM WK_Termine LEFT OUTER JOIN WK_Termine_Teilnehmer USING(TerId) LEFT OUTER JOIN WK_Teilnehmer USING(TNId) LEFT OUTER JOIN WK_Gewichtsklassen USING(GKId) GROUP BY TerTermin ############ SELECT TerTermin,SUM(Punkte),TNSex FROM WK_Termine LEFT OUTER JOIN WK_Termine_Teilnehmer USING(TerId) LEFT OUTER JOIN WK_Teilnehmer USING(TNId) LEFT OUTER JOIN WK_Gewichtsklassen USING(GKId) GROUP BY TerTermin,TNSex [/code] sonst noch fragen????? jetzt solltest du aber alles erdenkliche aus meinm beispiel ableiten können... :D frage bitte nicht zu viel. ich habe mir heute schon den ganzen tag gedanken gemacht und jetzt nebenbei das ganze minitut aufgesetzt. über deine darstellungen der ein- und ausgabe musst du mal überlegen, was wie zu machen ist. ich habe hier ja auch schon ansätze geliefert.