Turnier Grid Programmieren gut aber keine Idee wie :/

2Pac

Erfahrenes Mitglied
Hallo!
Ich möchte ein Tunierscript Programmieren. Dabei habe ich aber das Problem ich kann eigentlich recht gut Programmieren aber mir fällt nichts ein wie ich es umsetzen kann.

Es soll wie folgt aussehen:

64 Teilnehmer jeweils 2 Spieler gegeneinander. Der Verlierer soll das Ergebnis posten und kommt dann eine Runde weiter.

Aber ich hab kein Plan wie ich die Leute die z.b. in der 1. Runde ganz oben stehen, der sieger von denen in der 2. Runde wieder ganz oben steht. : /

Ausserdem wie warn das nochmal im MySQL mit dem zufällig auswählen von zahlen 1-32...

Wäre sehr nett wenn jemand mir helfen könnte. Wenn jemand vielleicht auch ein Script schon hat was man einbaun kann dann soll er sich mal bei mir im ICQ melden 149156054 oder im IRC: #hfd,#ju$tRule,#filament.turnier ich heisse dort HFD|filament ...
 
aber schon tauchen die 1. probleme auf :( ich hab mir so gedacht:

Also ich lass erstmalLeute anmelden und in die datenbank rein schreiben. So Da sie jetzt einen Account besitzen können sie sich für ein Turnier anmelden insofern eines läuft. Läuft gut. Wenn sie sich anmelden anmeldung in der datenbank = 1. So dann gibts ein check in als sicherung das auch nur die mitmachen die da sind. wenn checkin=1 sind sie dabei. Wenn dann 32 Leute z.b. eingecheckt sind gehts los. Ich habe bei der anmeldung nummern verteilt (1-32) dann spielt jetzt

1 gegen 2
3 gegen 4
5 gegen 6
7 gegen 8

usw....

Läuft auch gut. Grid anzeigen läuft auch alles super. So aber beim Ergebnis senden habe ich ein Problem:

Es treten manchmal Probleme auf und ich habe keinen blassen warum : (

ich habe mehrere textdatein:
counter.txt = zur übergabe der zahlen 1-32 [1.Runde] 1-16 [2.Runde] usw.
teilnehmer.txt = insgesamte Teilnehmer (weil hab ein Turniererstell seite wo ich nichts selber machen muss sondern nur abschicken brauch)
runde.txt = aktuelle Runde wird immer neu geschrieben


Gepostet wird immer ein Sieg. Ich habe mir nun so gedacht:
erst zur db connecten dann:
PHP:
$res = mysql_db_query("$DatabaseName", "select gespielt,runde1,runde2,runde3,runde4,runde5,
runde6,runde7 from fteilnehmer where nick='$nick' and pw='$pw'");
                $num = mysql_num_rows($res);
                $datei = fopen("runde.txt", "r");
                $text = fgets($datei);
                fclose($datei);
                if ($text == 1)
                {
                 if ($num == 1)
                 {
                  while ($data = mysql_fetch_row($res))
                  {
                   $gespielt = $data[0];
                   $runde1 = $data[1];
                   if ($gespielt == 1)
                   {
                    echo "<center>Ergebnis wurde bereits gepostet!</center>";
                   }
                   else
                   {
                    if ($text == 1)
                    {
                     $res5 = mysql_db_query("$DatabaseName", "select nick 
from fteilnehmer where nochdrin=1");
                     $num5 = mysql_num_rows($res5);
                     if ($num5 == 1)
                     {
                      while ($data = mysql_fetch_row($res5))
                      {
                       $nick = $data[0];
                       echo "<center>Das Turnier ist bereits beendet!</center>";
                       $datei = fopen("counter.txt", "w");
                       fputs($datei, 0);
                       fclose($datei);
                       $datei = fopen("runde.txt", "w");
                       fputs($datei, 20);
                       fclose($datei);
                       $datei = fopen("teilnehmer.txt", "w");
                       fputs($datei, 0);
                       fclose($datei);
                       $datei = fopen("checkin.txt", "w");
                       fputs($datei, 0);
                       fclose($datei);
                       $message = "Turniersieger des letzten Turniers: $nick";
                       $datei = fopen("turnier.txt", "w");
                       fputs($datei, $message);
                       fclose($datei);
                      }
                     }
                     else
                     {
                      if (is_int($runde1/2))
                      {
                       $gegner = $runde1-1;
                      }
                      else
                      {
                       $gegner = $runde1+1;
                      }

                      $sqlab = "update fteilnehmer set runde1f='#000000' 
where nick='$nick' and pw='$pw'";
                      
                      mysql_db_query("$DatabaseName", $sqlab);
                      $sqlab = "update fteilnehmer set nochdrin=1 
where nick='$nick' and pw='$pw'";
                      
                      mysql_db_query("$DatabaseName", $sqlab);
                      $sqlab = "update fteilnehmer set nochdrin=0 
where runde1='$gegner'";
                      
                      mysql_db_query("$DatabaseName", $sqlab);
                      $sqlab = "update fteilnehmer set gespielt=1 
where runde1='$gegner'";
                      
                      mysql_db_query("$DatabaseName", $sqlab);
                      $sqlab = "update fteilnehmer set gespielt=1 
where runde1='$runde1'";
                      
                      mysql_db_query("$DatabaseName", $sqlab);
                      if (mysql_affected_rows() != 0)
                      {
                       echo "<center>Ergebnis Erfolgreich eingetragen!</center>";
                      }
                      $datei = fopen("counter.txt", "r");
                      $counter = fgets($datei);
                      fclose($datei);
                      $counter2 = $counter+1;
                      $datei = fopen("counter.txt", "w");
                      fputs($datei, $counter2);
                      fclose($datei);
                      $sqlab = "update fteilnehmer set runde2=$counter2 
where nick='$nick' and pw='$pw'";
                      
                      mysql_db_query("$DatabaseName", $sqlab);
                      $resu = mysql_db_query("$DatabaseName", "select * 
from fteilnehmer where gespielt=0 and checkin=1");
                      $num = mysql_num_rows($resu);
                      if ($num == 0)
                      {
                       $sqlab = "update fteilnehmer set gespielt=0 
where nochdrin=1";
                       mysql_db_query("$DatabaseName", $sqlab);
                      
                       $datei = fopen("counter.txt", "w");
                       fputs($datei, "0");
                       fclose($datei);
                       $datei = fopen("runde.txt", "w");
                       fputs($datei, "2");
                       fclose($datei);
                      }
                     }
                    }
                   }
                  }
                 }
                 else
                 {
                  echo "<center>Dieser Account existiert nicht!</center>";
                 }
                }

so ganze wird dann für jede runde wiederholt. (insgesamt 7) nur die 7. da wird halt einfach nur der sieger mit #000000 markiert. DAS ganze klappt auch für Runde 1 + 2 +3. Aber wenn ich dann Runde 3 die Ergebnisse poste dann will er entweder nicht eine runde weiter gehen. Oder er trägt keine Ziffern aus der Counter.txt datei in die Datenbank ein. Nur warum kann da vielleicht jemand helfen : / ?
 
Zuletzt bearbeitet:
Zurück