[PHP & MySQL] Turnierloser

schimmel
Hier erkläre ich euch wie ein Turnierloser ausgebaut ist, so das den jeder in seine Homepage einbauen kann, um das Auswerten der Turniere zu vereinfachen.
Script ist getestet und läuft.
Ich habe (fast) nichts formatiert, um den Code so durchsichtig wie möglich zu halten.


Ihr braucht eine Seite namens turnierloser.php und einen PHP-fähigen Webspace.
Ihr solltet HTML sicher können und die Grundzüge von PHP beherrschen.

php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
<?php
### hier werden alle Variablen, die wir brauchen aufgeführt
$anzahl $_POST['anzahl'];
$nr $_POST['nr'];
$schritt $_GET['schritt'];
### mit switch case kann man das ganze so aufteilen, das alles auf einer seite bleibt
switch($schritt){
### case '' bedeutet /seite.php ohne das ? mit einer variablen
### jetzt kommt das Formular wo der Besucher/du die Anzahl der Starter eingibt
case '':
         echo '
         <form action="/turnierloser.php?schritt=1" method="post">
         <input type="text" name="anzahl"></input><br>
         <input type="submit" value="los geht´s"></input>
         </form>
         ';
break;
case '1':
         echo '
         <form action="/turnierloser.php?schritt=2" method="post">';
### das ist das Formular, wo die Teilnehmer in die Anzahl Felder eingetragen werden, die du eben eingegeben hast
         for($zahl 1$zahl $anzahl+1$zahl++){
### die for-schleife wiederholt das ausgeben der input felder jetzt solange, bis die Variable $zahl so groß ist wie die vom User eingegebene Zahl
                 echo 'Nr. '.$zahl.' <input type="text" name="nr['.$zahl.']"></input><br>';
### hier geben wir jetzt die input felder für die Teilnehmer aus
         }
         echo '<input type="submit" value="losen"></input></form>';
break;
case '2':
         $zufall = array();
### variable $zufall ins Leben rufen : hier kommen die Teilnehmer rein
         foreach($nr AS $nummer=>$teilnehmer){ 
### in der foreach-Schleife schreiben wir nun jeden Teilnehmer in das Array $zufall
                 $zufall[] = $teilnehmer;
             }
            echo 'Vorher:<br>';
         foreach($zufall AS $nummer=>$teilnehmer){
### die Variable $zufall enhält nun alle Teilnehmer, die wir nach der Reihenfolge ausgeben also ungemischt
                     $nummer $nummer+1;
                    echo 'Platz <b>'.$nummer.'</b>: '.teilnehmer.'<br>';
         }
 ### hier "schütteln" wir das Array $zufall durch
         shuffle($zufall);
         echo '<br><br>Nachher:<br>';
         foreach($zufall AS $nummer=>$teilnehmer){
### und geben nun die Teilnehmer wieder aus, diesmal in anderer Reihenfolge, da sie durch shuffle() geschüttelt wurden
                 $nummer $nummer+1;
                 echo 'Platz <b>'.$nummer.'</b>: '.$teilnehmer.'<br>';
         }
break;
}


?>


Das Scipt könnt ihr unter http://gut-lichtenstein.bplaced.net/turnierloser.php angucken + testen
Das ganze Script wurde von mir selbst geschrieben!
CL.mein.Traumpferd
SUper TUT dankefröhlich !
schimmel
Vielen Dank smile
Viviana
tolles Tut,
aber mal ne Frage:
Da zeigt es Paltz null an, wie kann man des ändern, dass es ab platz 1 anzeigt?
schimmel
hey :)
Das ist ganz einfach! Du zählst zu jeder Zahl einfach einen dazu:
php:
1:
2:
$nummer $nummer+1;
echo 'Platz <b>'.$nummer.'</b>: '.$teilnehmer.'<br>';


Habe das im Script und auf meiner Seite auch mal verändert !
Raindrops
Ist es auch möglcih diesen Turierloser so umzubauen, dass immer neue Pferde "krank werden? Also sozusagen als Krankloser?

MFG Töni
Simsi1992
also ich verstehs nich ganz ... oke ich bin auchnet so ganz des phpmonster xDDDD

also bei sieht des ganze jetzt so aus http://tssummerrain.ts.funpic.de/turnierloser.php

wie bekomm ich da jetzt mehr felder hin???? hab

code:
1:
$anzahl = $_POST['6'];

oder muss ich das freilassen????

& was muss ich in dem teil verändern?? also an dem hab ich noch nix verändert ?!
code:
1:
2:
3:
4:
   <form action="/turnierloser.php?schritt=1" method="post">
         <input type="text" name="anzahl"></input><br>
         <input type="submit" value="los geht´s"></input>
         </form>


wär voll nett wenn mirjemand helfen würde =/
vrhisihof
Das $anzahl = $_POST['6']; darfst du so nicht nehmen.
Muss $anzahl = $_POST['anzahl']; heißen.

Nimm einfach den Code, sowie er im Anfangsthread is Augenzwinkern

Dann gibst du in den ersten Block ein, wieviel Starter du hast. Sagen wir mal 20. Und dann klickst du dann unten weiter. Und dann gibst du im zweiten Schritt die Plätze ein. Also entweder den Namen von dem Pferd oder so.
Und dann auf losen & er lost dir die Platzierungen aus smile
Carina
also bei mir will es einfach nicht gehen. Funpic kann ja php umsetzen, daran liegt es also nicht. Ich habe den Code von oben kopiert und es geht nicht. Jetzt habe ich schon die Sprüche rausgelöscht und es geht genauso wenig wie vorher auch.

php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:

<?php
$anzahl $_POST['anzahl'];
$nr $_POST['nr'];
$schritt $_GET['schritt'];
switch($schritt){
case '':
         echo '
         <form action="/turnierloser.php?schritt=1" method="post">
         <input type="text" name="anzahl"></input><br>
         <input type="submit" value="los geht´s"></input>
         </form>
         ';
break;
case '1':
         echo '
         <form action="/turnierloser.php?schritt=2" method="post">';
         for($zahl 1$zahl $anzahl+1$zahl++){
                 echo 'Nr. '.$zahl.' <input type="text" name="nr['.$zahl.']"></input><br>';
         }
         echo '<input type="submit" value="losen"></input></form>';
break;
case '2':
         $zufall = array();
         foreach($nr AS $nummer=>$teilnehmer){
                 $zufall[] = $teilnehmer;
             }
            echo 'Vorher:<br>';
         foreach($zufall AS $nummer=>$teilnehmer){
                     $nummer $nummer+1;
                    echo 'Platz <b>'.$nummer.'</b>: '.teilnehmer.'<br>';
         }
         shuffle($zufall);
         echo '<br><br>Nachher:<br>';
         foreach($zufall AS $nummer=>$teilnehmer){
                 $nummer $nummer+1;
                 echo 'Platz <b>'.$nummer.'</b>: '.$teilnehmer.'<br>';
         }
break;
}


?>


klick
Carina
oh sry habs oben reineditiert
Saskia
muss ich jetzt 3 seiten erstellen ? Bei mir zeigts nur die erste seite an, wo man die zahl eingeben kann und wenn ich auf "los gehts" drücke, kommt, dass es die Seite nicht gibt... was mach ich falsch ?
Nanni
Nein, du brauchst nur eine Seite. Heißt sie bei dir eh auch turnierloser.php ? Ansonsten musst du den Namen in den Form-Befehlen umändern. Augenzwinkern
Saskia
Ja heißt so
White_Mustang
Hallo saskia94,

hatte das Problem auch, bis mir aufgefallen ist, dass du den Pfad noch verändern musst, wenn du mit Unterordnern arbeitest..

Beispiel:
Original
php:
1:
<form action="/turnierloser.php?schritt=1" method="post">


Angepasst
php:
1:
<form action="http://deine-seite.de/UNTERORDNER/turnierloser.php?schritt=1" method="post">


Du musst also dementsprechend den Pfad angeben in der die Datei "turnierloser.php" liegt. Bei meiner Angepassten Variante ist es ein absoluter Pfad, wenn du mit relativen Pfaden arbeitest, mache:
../ -> für deine Adresse in der die Index liegt und nach dem Slash kannst du dann deine(n) Unterordner namentlich eintragen.

Siehe so:
php:
1:
<form action="../UNTERORDNER/turnierloser.php?schritt=1" method="post">

Dies natürlich auch bei dem 2. Schritt verwenden.


schimmel, vielen Dank für das Tutorial (:

Liebe Grüße,
Whity