PHP Forum

PHP Forum (http://www.selfphp.de/forum/index.php)
-   PHP Grundlagen (http://www.selfphp.de/forum/forumdisplay.php?f=12)
-   -   Tipps? Ideen? Spielplan = Tabelle (http://www.selfphp.de/forum/showthread.php?t=7975)

Soeren 17.06.2004 21:09:29

Tipps? Ideen? Spielplan = Tabelle
 
und nochmal ich...

ich hab folgendes vor..

Ich habe ein Spielplan, diesen werde ich in eine Tabelle einpflegen sprich:
Tabelle 1 = Vereine
Tabelle 2 = Spiele

Nun möchte ich gerne, dass ich per PHP aus dem Spielplan die jeweils aktuelle Tabelle errechnet, wenn ich die jeweiligen Ergebnisse eingebe.

Hoffe ihr versteh was ich meine?!

Gruß

lasso 22.06.2004 11:24:25

hi soeren

mich würde sowohl das erstellen eines spielplans als auch die daraus zu errechnende tabelle interessieren. im web habe ich bisher noch nichts dazu gefunden...

falls du mal was findest, melde dich doch bitte unter chez.mike@gmx.net.

danke und gruss

Soeren 22.06.2004 12:16:15

Werd ich machen, wenn ich fündig werde.
Leider ist da nicht viel...
Versuch aber gerade mein eigenes System dafür zu entwerfen..
mal schauen ob das klappt

xabbuh 22.06.2004 12:35:58

Ich würde dafür zwei Datenbanktabellen anlegen:

1. teams
ID
name //VEREINSNAME

(Es können natürlich auch weitere Informationen wie Gründungsjahr etc. abgespeichert werden.)

2. spiele
ID
spieltag
HID //ID MANNSCHAFT 2
AID //ID MANNSCHAFT 1
toreH //GESCHOSSENE TORE MANNSCHAFT 1
toreA //GESCHOSSENE TORE MANNSCHAFT 2

Das Eintragen und die Ausgabe von Spieltagen sollte so kein Problem sein.

Jetzt zur Tabelle:

PHP-Code:

//TEAMNAMEN MIT ZUGEHÖRIGER ID IN ARRAY SPEICHERN
$result=mysql_query("SELECT ID, name FROM teams ORDER BY ID");
while(
$row=mysql_fetch_array($result)){
    
$team[$row['ID']]=$row['name'];
    
$tabelle[$row['ID']]['punkte']=0;
    
$tabelle[$row['ID']]['tore']=0;
    
$tabelle[$row['ID']]['gegentore']=0;
    }

$result=mysql_query("SELECT HID, AID, toreH, toreA FROM spiele ORDER BY ID");
while(
$row=mysql_fetch_array($result)){

    
$tabelle[$row['HID']]['tore']=$tabelle[$row['HID']]['tore']+$row['toreH'];
    
$tabelle[$row['AID']]['tore']=$tabelle[$row['AID']]['tore']+$row['toreA'];
    
$tabelle[$row['HID']]['gegentore']=$tabelle[$row['HID']]['gegentore']+$row['toreA'];
    
$tabelle[$row['AID']]['gegentore']=$tabelle[$row['AID']]['gegentore']+$row['toreH'];
    
//SIEG DER HEIMMANNSCHAFT
    
if($row['toreH']>$row['toreA']){
    
$tabelle[$row['HID']]['punkte]=$tabelle[$row['HID']]['punkte']+3;
        }

    //SIEG DER GASTMANNSCHAFT
    if($row['
toreH']<$row['toreA']){
    $tabelle[$row['
AID']]['punkte]=$tabelle[$row['AID']]['punkte']+3;
        }

    
//UNENTSCHIEDEN
    
if($row['toreH']==$row['toreA']){
    
$tabelle[$row['HID']]['punkte]=$tabelle[$row['HID']]['punkte']+1;
    $tabelle[$row['
AID']]['punkte]=$tabelle[$row['AID']]['punkte']+1;
        }
    }

foreach(
$tabelle as $ID => $row){
    
$punkte[$ID]=$row['punkte'];
    
$tore[$ID]=$row['tore'];
    
$gegentore[$ID]=$row['gegentore'];
    
$differenz[$ID]=$row['tore']-$row['gegentore'];
    }

array_multisort($punkteSORT_DESC$differenzSORT_DESC$toreSORT_DESC$tabelle); 

Die Sortierung ist dann erfolgt. Die Ausgabe mit einer foreach Schleife sollte dann auch kein Problem mehr darstellen.

Interessant dürfte hier die Funktionsbeschreibung von array_multisort und speziell der Beitrag vom 30-Jan-2004 07:57 sein.

Wenn bei der Sortierung der Tabelle auch der direkte Vergleich berücksichtigt werden soll, schaut euch das mal an: http://www.selfphp.info/forum/showth...5830#post45830

Soeren 22.06.2004 12:44:03

Das hilft mir schon sehr viel weiter *denk*
werd mir das bei der nächstmöglichen Gelegenheit mal angucken.

Nur das mit dem Unentschieden muss ich abändern, da es kein unentschieden geben wird.

Es gibt nur:

3 Punkte = Sieg
2 Punkte = Sieg n.V. / n.P.
1 Punkt = Niederlage n.V. / n.P.
0 Punkte = Niederlage

Aber ich denke, dass sollte nicht so schwer sein es da noch hinzu zufügen. *hoff*

xabbuh 22.06.2004 12:59:21

Das sollte kein Problem sein. Du fügst am besten noch eine Spalte verlaengerung in die Tabelle hinzu.
Typ: enum
Mögliche Werte: 'ja','nein'

Und machst die Punkteabfrage dann so:

PHP-Code:

    //SIEG DER HEIMMANNSCHAFT
    
if(($row['toreH']>$row['toreA']) && $row['verlaengerung']=="nein"){
    
$tabelle[$row['HID']]['punkte]=$tabelle[$row['HID']]['punkte']+3;
    }

    //SIEG DER GASTMANNSCHAFT
    if(($row['
toreH']<$row['toreA']) && $row['verlaengerung']=="nein"){
    $tabelle[$row['
AID']]['punkte]=$tabelle[$row['AID']]['punkte']+3;
    }
    
//SIEG DER HEIMMANNSCHAFT N.V. BZW. N.P.
    
if(($row['toreH']>$row['toreA']) && $row['verlaengerung']=="ja"){
    
$tabelle[$row['HID']]['punkte]=$tabelle[$row['HID']]['punkte']+2;
    $tabelle[$row['
AID']]['punkte]=$tabelle[$row['AID']]['punkte']+1;
    }

    
//SIEG DER GASTMANNSCHAFT N.V. BZW. N.P.
    
if(($row['toreH']<$row['toreA']) && $row['verlaengerung']=="ja"){
    
$tabelle[$row['AID']]['punkte]=$tabelle[$row['AID']]['punkte']+2;
    $tabelle[$row['
HID']]['punkte]=$tabelle[$row['HID']]['punkte']+1;
    } 

Eine Tabelle für Eishockey?

Soeren 22.06.2004 13:03:42

Jepp, für Eishockey.
Danke erstmal...

Soeren 26.06.2004 09:10:51

Zitat:

Original geschrieben von xabbuh
Das sollte kein Problem sein. Du fügst am besten noch eine Spalte verlaengerung in die Tabelle hinzu.
Typ: enum
Mögliche Werte: 'ja','nein'
Das werde ich wohl noch etwas abändern müssen.
Möchte da wohl mit anderen werten arbeiten.
V = Verlängerung
P = Penalty

so kann ich im Spielplan anzeigen lassen wie das Spiel gewonnen wurde... entweder nach Penalty oder nach Verlängerung.
X nehm ich dann wohl für = weder noch

Hab die Tabellen gerade angelegt und werd erstmal ans Programmieren des Adminsbereich gehen, wo ich teams und spieltage erfassen kann/muss

Ach ist das alles aufregend für so nen Newbie wie mich *grins*

Soeren 08.07.2004 20:53:00

Zitat:

Original geschrieben von xabbuh
Die Ausgabe mit einer foreach Schleife sollte dann auch kein Problem mehr darstellen.
Hab ich probiert, hab den FOREACH kram aber leider noch nicht so verstanden...
kannst mir da nochmal bei helfen?

xabbuh 09.07.2004 16:17:51

Zitat:

Original geschrieben von Soeren
Hab ich probiert, hab den FOREACH kram aber leider noch nicht so verstanden...
kannst mir da nochmal bei helfen?

Meinst du die allgemeine Funktion von foreach, also wie foreach allgemein funktioniert oder an diesem konkreten Beispiel?


Alle Zeitangaben in WEZ +2. Es ist jetzt 03:53:00 Uhr.

Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.