AW: Foreach Problem
ich habe mir überlegt alles in eine Datenbank zu schreiben. Dann kann man auch Statistiken besser berechnen.
ich habe mir gedacht der aufbau der DB schaut so aus
fileID TeamA TeamB MapName ReplayPfad Datum Dauer SpielName TeamArassen MatchUp TeamBrassen
ich lade das replay hoch und füge es dann mit einem Insert Befehl in die DB
die ganzen Daten bekomme ich durch $info = php_bw_load_replay(getcwd()."/".$pfad);
wie ich den MapName den Replaypfad das Datum SpielNamen und Matchup einfüge weiß ich bloß die Spieler mit deren Rassen bereiten mir Probleme
Die Spieler und Ihre Rassen sind in einem array mit nem Objekt
der aufbau schaut so aus habe mir den aufbau durch var_dump($info->Players); anzeigen lassen
array(4) {
[0]=>
object(stdClass)#9 (17) {
["Name"]=>
string(12) "C.Le.WeekEnd"
["Race"]=>
int(0)
["RaceName"]=>
string(4) "Zerg"
["Number"]=>
int(3)
["APM"]=>
int(55)
["Human"]=>
bool(true)
["Computer"]=>
bool(false)
["Color"]=>
int(0)
["ColorName"]=>
string(3) "Red"
["ColorHTML"]=>
int(16711680)
["IsObserver"]=>
bool(false)
["StartingLocation4"]=>
int(3)
["StartingLocation12"]=>
int(3)
["NormXpos"]=>
float(0.9140625)
["NormYpos"]=>
float(0.42578125)
["DidLeave"]=>
bool(true)
["LeaveStamp"]=>
int(1594)
}
so bei nem eins gegen eins ist es auch kein Problem die Spieler mit Ihren rassen einzutragen bloß ab einem zwei gegen zwei drei gegen drei oder 4gegen 4 wird es zu einem Problem.
schließlich sollen ja die Spieler zu ihrem Team zugeordnet werden der aufbau von $info->Teams
schaut so aus
array(2) {
[0]=>
array(2) {
[0]=>
string(11) "nemezis_krk"
[1]=>
string(12) "C.Le.WeekEnd"
}
[1]=>
array(2) {
[0]=>
string(7) "Rey-619"
[1]=>
string(10) "MegamanX13"
}
}
also wie gesagt bei einem 1 gegen 1 habe ich es hinbekommen.
ich habe mir gedacht ich gucke mit einer If schleife nach ob es ein teams gab oder nicht wenn es kein Team gab dann war es ein 1 gegen 1 und dann soll er eintragen bla bla... in die DB
und dann hänge ich jetzt bei der else Anweisung ich weiß einfach nicht wie ich es machen soll
so schaut es beim 1 gegen 1 aus
PHP:
<?php
$pfad = $_GET['path'];
?>
<?php
chdir('repasmrep/');
$info = php_bw_load_replay(getcwd()."/".$pfad);
if($info->ErrorCode != 0)
die("Could not load the replay ! Message : " . $info->ErrorString);
$datum = date("F j, Y, G:i ",$info->GameDate);
$map = $info->Map;
$winner = $info->Winner;
$gewinner = $winner->Name;
$spielerim = $info->Players;
$spielname = $info->GameName;
$matchup = $info->Matchup;
$mapname = $map->Name;
$dauer = date("i:s",$info->GameLength);
echo"Es Spielten<br>";
foreach($info->Players as $player)
# Check if player is observer
if ($player->IsObserver != '1'){
echo $player->Name;
echo "<img src='img/" . $player->RaceName . ".png'> "; # i got 3 pngs in /img/
}
echo "<br>gegeneinander";
#get the winner in 1o1...
$sieger = $info->Winner;
$gewinner = $sieger->Name;
$rasseg = $player->RaceName;
# get the Looser in 1o1
foreach($info->Players as $player)
{
if (($player->IsObserver != '1') && ($player->Name != $sieger->Name)){
$verlierer = $player->Name;
$rassev = $player->RaceName;
echo $rassev[1];
}
}
//Datum Prüfen mit Spiel Dauer und Namen
$checkdaten = mysql_query("SELECT datum,dauer,spielname FROM repasmuserstat WHERE datum='$datum' AND dauer='$dauer' AND spielname='$spielname'");
$daten_exist = mysql_num_rows($checkdaten);
if ($daten_exist>0) {
echo "<br>The game is already added";
echo"<br><a href=\"javascript:history.go(-1);\">Back</a>";
die;
}
else {
}
//Everything seems good, lets insert.
$query = "INSERT INTO repasmuserstat SET datum='$datum', TemArassen ='$player->RaceName', TeamBrassen ='$rassev', spielname='$spielname', mapname='$mapname', dauer='$dauer', replaypfad='$pfad', matchup='$matchup', TemA='$gewinner', farbe='$player->ColorName', TeamB='$verlierer'";
mysql_query($query) or die(mysql_error());
echo "<br>The Game has been successfully added.";
mir ist aufgefallen das es die Sieger in den letzten array stellet
somit stellt sich die frage wie macht man das am besten ich habe keine Ahnung.
habe es so versucht echo"Gewinner:<br>".$team[1]; das ging leider nicht.
weil wenn es so funktioniert hätte hätte ich die Datenbank Tabelle die felder TeamA und TeamB um nennen können in Gewinner Verlierer