Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » PHP » Hat jemand eine passende Schleife?

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
27.10.2003, 17:29 Uhr
Impeesa



Hallo,

ich könnte etwas Hilfe gebrauchen. Ich habe vor die Ergebnisse meiner Fußballmanschaft mittels php in eine mysql Datenbank zu lesen und dann daraus auch eine Tabelle auszulesen.

In einem ersten habe ich jetzt ein Ansetzungsscript in dem ich die Spiele des Spieltages erfassen kann. Dann erfolgt die Eingabe der Ergebnisse und somit die Änderung von Punkten und Toren der Mannschaften.

Zum verändern der Daten haben ich jetzt folgendes fertig:


Code:
mysql_connect("$MySQL_Host","$MySQL_User","$MySQL_Passw");

if ($h1 == $a1) {
    mysql("$db","UPDATE team SET punkte=(punkte+1) WHERE name='$heim1'");
    mysql("$db","UPDATE team SET torp=(torp + $h1) WHERE name='$heim1'");
    mysql("$db","UPDATE team SET torm=(torm + $a1) WHERE name='$heim1'");
    mysql("$db","UPDATE team SET punkte=(punkte+1) WHERE name='$aus1'");
    mysql("$db","UPDATE team SET torp=(torp + $a1) WHERE name='$aus1'");
    mysql("$db","UPDATE team SET torm=(torm + $h1) WHERE name='$aus1'");
}

else {
    if ($h1 > $h2) {
    mysql("$db","UPDATE team SET punkte=(punkte+3) WHERE name='$heim1'");
    mysql("$db","UPDATE team SET torp=(torp + $h1) WHERE name='$heim1'");
    mysql("$db","UPDATE team SET torm=(torm + $a1) WHERE name='$heim1'");
    mysql("$db","UPDATE team SET torp=(torp + $a1) WHERE name='$aus1'");
    mysql("$db","UPDATE team SET torm=(torm + $h1) WHERE name='$aus1'");
    }

    else {
    mysql("$db","UPDATE team SET torp=(torp + $h1) WHERE name='$heim1'");
    mysql("$db","UPDATE team SET torm=(torm + $a1) WHERE name='$heim1'");
    mysql("$db","UPDATE team SET punkte=(punkte+3) WHERE name='$aus1'");
    mysql("$db","UPDATE team SET torp=(torp + $a1) WHERE name='$aus1'");
    mysql("$db","UPDATE team SET torm=(torm + $h1) WHERE name='$aus1'");
    }
}
?>



Dies sind aber nun natürlich nur die Veränderungen für das erste Spiel. Und ich suche nach einer Lösung das ganze so in eine Schleife zu packen und nicht das gleiche hier 6 mal hin zu schreiben. Hat da jemand eine Lösung?

heim1= 1.Heimmannschaft
aus1= 1.Auswärtsmannschaft
h1= Tore der 1.Heimmannschaft
a1= Tore der 2. Heimmannschaft

Ich danke im voraus für Eure Mithilfe!

Dieser Post wurde am 27.10.2003 um 17:37 Uhr von FloSoft editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
27.10.2003, 17:38 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


Packs in eine Funktion ...
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
27.10.2003, 17:48 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


du könntest z.b. schaltervariablen benutzen


C++:
$s1=$s2=$s3=0;
if ($h1 == $a1)$s3=1;
else if($h1 > $a1)$s1=1; else $s2=1;

mysql("$db","UPDATE team SET punkte=(punkte+$s1*3+$s3*1) WHERE name='$heim1'");
mysql("$db","UPDATE team SET punkte=(punkte+$s2*3+$s3*1) WHERE name='$aus1'");
mysql("$db","UPDATE team SET torp=(torp + $h1) WHERE name='$heim1'");
mysql("$db","UPDATE team SET torm=(torm + $a1) WHERE name='$heim1'");
mysql("$db","UPDATE team SET torp=(torp + $a1) WHERE name='$aus1'");
mysql("$db","UPDATE team SET torm=(torm + $h1) WHERE name='$aus1'");



Gruss Heiko
--
...fleißig wie zwei Weißbrote

Dieser Post wurde am 27.10.2003 um 17:59 Uhr von Windalf editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
27.10.2003, 18:29 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


Als Allererstes würde ich die Hochkommata vom mysql_connect aufruf weglassen! Die sind unnötig und machen den code nur unübersichtlich:

PHP 4:
mysql_connect($MySQL_Host,$MySQL_User,$MySQL_Passw);



Das gleiche gilt bei den "$db"'s
Ich würde, solang man nicht mehrere Datenbanken gleichzeitig benutzt, keine Funktion empfehlen bei der man die Datenbank jedesmal auswählt!

benutz nach dem mysql_connect


PHP 4:
mysql_select_db(...);



und schreib die mysql(...) funktion um!

Dann würde ich bessere Variablennamen verwenden:


PHP 4:
$heim[name] = "Heimmannschaft";
$heim[tore] = 4;

$aus[name] = "Auswärtsmannschaft";
$aus[tore] = 3;



am Ende säh es dann in etwa so aus:


Code:
$heim[name] = "Heimmannschaft";
$heim[tore] = 4;

$aus[name] = "Auswärtsmannschaft";
$aus[tore] = 3;

//...

if(!@mysql_connect($MySQL_Host,$MySQL_User,$MySQL_Passw))
  die("Database Error: ".mysql_error());

if(!@mysql_select_db($db))
  die("Database Error: ".mysql_error());

if($heim[tore] == $aus[tore])
{
}
    mysql("UPDATE team SET punkte=(punkte+1), torp=(torp + ".$heim[tore]".), torm=(torm + ".$aus[tore].") WHERE name='".$heim[name]."'");
    mysql("UPDATE team SET punkte=(punkte+1), torp=(torp + ".$aus[tore]."), torm=(torm + ".$heim[tore].") WHERE name='".$aus[name]."'");
}
else
{
  if ($heim[tore] > $aus[tore])
  {
    win($heim,$aus);
  }
  else
  {
     win($aus,$heim);
  }
}

function win($winner,$looser)
{
    mysql("UPDATE team SET punkte=(punkte+3), torp=(torp + {$winner[tore]}), torm=(torm + {$looser[tore]})  WHERE name='{$winner[name]}");
    mysql("UPDATE team SET torp=(torp + {$looser[tore]}), torm=(torm + $winner[tore]) WHERE name='{$looser[name]}");
}
?>



Falls nun noch irgendwo tippfehler drin sind, haste pech gehabt
--
class God : public ChuckNorris { };

Dieser Post wurde am 27.10.2003 um 18:31 Uhr von FloSoft editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ PHP ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: