ergebnisse in Kategorien unterteilt ausgeben

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • #16
    ok, danke dir !

    Da habe ich aber eine Frage:

    Wie kriegt man wenn man dann einen Wettkampf ausgewählt hat raus ob Jungen und mädchen teilgenommen haben und wenn Junge oder Mädchen ausgewählt worden ist welche gewichtsklasse(n) an diesem Wettkampf mitgemacht haben !

    Kommentar


    • #17
      durch die verknüpfung der tabellen .....

      bei den teilnehmern steht ja auch das w oder m dabei. danach kann man gruppieren oder auswählen (WHERE)
      INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


      Kommentar


      • #18
        Danke, ich werde mich dann mal heute Nachmittag dran versuchen die tabellen zu machen und anschließend die PHP-Arbeit !

        Kommentar


        • #19
          du kannst ja schon anfangen....
          wie gesaht. heute abend wollte ich eigentlich dir die tabellen und ein paar demo querys geben.
          INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


          Kommentar


          • #20
            ohh danke. Dann spiele ich das für mich schonmal durch und gucke ob ich in MYSQL und PHP schon etwas mehr gelernt habe.

            Kommentar


            • #21
              ich habe schon ein paar tabs fertig. muss jetzt aber mal kurz weg.
              du kannst dich aber schon mal hiermit auseinander setzen.

              http://de.php.net/manual/de/function...-insert-id.php

              und natürlich auch mit den normalen sql befehlen INSERT,SELECT usw...
              INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


              Kommentar


              • #22
                Die normaler SQL Befehle habe ich soweit ganz gut drauf. Habe aber noch nie von ganz anfang an etwas lösen müssen; meißt hatte ich schon "code Schnipsel"

                Kommentar


                • #23
                  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 '',
                    GK************ char(1) NOT NULL default 'M',
                    PRIMARY KEY  (GKId),
                    UNIQUE KEY GewichtsklassenKey (GKkg,GK************)
                  ) 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 '',
                    TN************ 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;
                  zuerst müssen viele viele gewichtsklassen definiert werden.
                  und auch welchen geschlecht sie angehören. w/m => Female / Male

                  PHP-Code:
                  $sql "INSERT INTO WK_Gewichtsklassen (GKkg,GK************) VALUES ('".$gewichtsklasse_in_kg_von_bis."','".$geschlecht_F_M."')"
                  Code:
                  # DEMO ZUM TEST
                  INSERT INTO WK_Gewichtsklassen (GKId, GKkg, GK************) VALUES (1, '10-15', 'M');
                  INSERT INTO WK_Gewichtsklassen (GKId, GKkg, GK************) VALUES (2, '10-20', 'F');
                  INSERT INTO WK_Gewichtsklassen (GKId, GKkg, GK************) VALUES (3, '16-25', 'M');
                  INSERT INTO WK_Gewichtsklassen (GKId, GKkg, GK************) VALUES (4, '21-38', 'F');
                  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-Code:
                  $sql "INSERT INTO WK_Teilnehmer (TNName,TNVorname,TN************) VALUES ('".$name."','".$vorname."','".$geschlecht."')"
                  und wieder ein paar demo-daten.

                  Code:
                  # DEMO ZUM TEST
                  INSERT INTO WK_Teilnehmer (TNId, TNName, TNVorname, TN************, GKId) VALUES (1, 'Schmitz', 'Thomas', 'M', 0);
                  INSERT INTO WK_Teilnehmer (TNId, TNName, TNVorname, TN************, GKId) VALUES (2, 'Müller', 'Martin', 'M', 0);
                  INSERT INTO WK_Teilnehmer (TNId, TNName, TNVorname, TN************, GKId) VALUES (3, 'Bach', 'Thorsten', 'M', 0);
                  INSERT INTO WK_Teilnehmer (TNId, TNName, TNVorname, TN************, GKId) VALUES (4, 'Bachhuber', 'Kati', 'F', 0);
                  INSERT INTO WK_Teilnehmer (TNId, TNName, TNVorname, TN************, GKId) VALUES (5, 'Schneider', 'Martina', 'F', 0);
                  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-Code:
                  $sql "SELECT GKId,GKkg FROM WK_Gewichtsklassen WHERE TN************ = '".$geschlecht."'"
                  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-Code:
                  $sql "UPDATE WK_Teilnehmer SET GKId = '".$gewichtsklassen_id."' WHERE TNId = '".$ausgewaehlte_teilnehmer_id."'"
                  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';
                  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)
                  nun musst du termine und eine wettkampfnummer definieren.

                  PHP-Code:

                  $sql 
                  "INSERT INTO WK_Termine (TerTermin,TerWKNummer) VALUES ('".$termin."','".$wknummer."')";

                  //$termin muss in diesem format vorliegen. (ohne die ') => 'JJJJ-MM-TT HH:MM.SS' 
                  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);
                  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');


                  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)
                  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';

                  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)

                  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),TN************
                    
                    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,TN************
                  sonst noch fragen?????

                  jetzt solltest du aber alles erdenkliche aus meinm beispiel ableiten können...
                  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.
                  INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                  Kommentar


                  • #24
                    und fürs archiv auch als txt-datei. *hihi*
                    Angehängte Dateien
                    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                    Kommentar


                    • #25
                      @tobi
                      gehört das nicht eher ins SQL forum rein?
                      kannst ja verschieben. danke
                      INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                      Kommentar


                      • #26
                        Danke dir da ist zwar sehr viel neues drin, aber ich werde da schon durchsteigen. Ich hoffe das ich das bis morgen geschafft habe und dir ein ergebniss präsentieren kann.

                        Kommentar


                        • #27
                          dann ist ja gut... ich habe auch alles schön erklärt....

                          der rest ist eigentlich nur noch php und bissy html.
                          INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                          Kommentar


                          • #28
                            Habe alles hingekriegt; habe zwar die tabellen noch einwenig verändert, da ich keine Punkte verteilen möchte sondern nur ein Ergebniss.

                            Und ich glaube der PHP-Teil war ein bisschen umständlich aber es funzt.

                            Ich habe nur noch eine Frage:

                            Da gibt ja ein Feld vom Format datetime mit 0000-00-00 00:00:00

                            wie mache ich daraus 00-00-0000 ?

                            Kommentar


                            • #29
                              gar nicht.
                              das datum wird IMMER so geschrieben, wie ich es gemacht habe. die zeit ist da übrigend auch dabei... )

                              wenn du es schöner in der ausgabe haben willst, kannst du DATE_FORMAT verwenden.

                              Code:
                              trage statt
                              
                              TerTermin
                              
                              dies in der SQL-query ein.
                              
                              DATE_FORMAT(TerTermin,'%d.%m.%Y - %H:%i') TerTermin
                              INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                              Kommentar


                              • #30
                                ps. im ürbrigen ist das format deswegen so, damit man ein datum auch korrekt sortieren kann.

                                pps. wo kann man das denn mal sehen ....
                                INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                                Kommentar

                                Lädt...
                                X