Mam następujący problem związany ze zliczaniem.
Na localhoscie kod wykonuje się prawidłowo i ziczany jest prawidłowy wynik, natomiast to samo wygenerowane na serwerze gdzie znajduje się strona daje zupełnie inny wynik!!!
Poniżej przedstawiam kod i wyniki (prawidłowy i nieprawidłowy):
<?php
if ($pass == 1) {
//podczas wyswietlania danych dodatkowo wykonywane sa wszystkie obliczenia do tabe
ki z podsumowaniem
$id1_name_m = $id1_name_dane[\"Name\"];
$id2_name_m = $id2_name_dane[\"Name\"];
echo '<p>Zestawienie wszystkich gier pomiędzy '.$id1_name_m.' oraz '.$id2_name_m.'</p>'; echo '<div class=\"frame\">'; echo '<table class=\"zestawienie\"><tr><td>Turniej</td><td> Gospodarz </td><td> Pkt </td><td>vs.</td><td>Pkt</td><td>Gość</td></tr> '; $id1_name = $vs_dane[\"HostName\"];
$id2_name = $vs_dane[\"GuestName\"];
if ($vs_dane[\"RoznicaPkt\"] == 0) {
//gdy remis
$sum_level++;
$sum_pkt_id1 = $sum_pkt_id1 + $vs_dane[\"HostPoints\"];
$sum_pkt_id2 = $sum_pkt_id2 + $vs_dane[\"GuestPoints\"];
}
else if ($vs_dane[\"RoznicaPkt\"] > 0) {
//gdy roznica dodatnia
if ($vs_dane[\"HostID\"] == $id1) {
$sum_won_id1++;
$sum_pkt_id1 = $sum_pkt_id1 + $vs_dane[\"HostPoints\"];
$sum_pkt_id2 = $sum_pkt_id2 + $vs_dane[\"GuestPoints\"];
}
else {
// gdy gospodarzem bedzie $id2
$sum_won_id2++;
$sum_pkt_id1 = $sum_pkt_id1 + $vs_dane[\"GuestPoints\"];
$sum_pkt_id2 = $sum_pkt_id2 + $vs_dane[\"HostPoints\"];
}
}
else if ($vs_dane[\"RoznicaPkt\"] < 0) {
// gdy roznica bedzie ujemna tzn pierwszy gracz przegral
if ($vs_dane[\"HostID\"] == $id1) {
$sum_won_id2++;
$sum_pkt_id1 = $sum_pkt_id1 + $vs_dane[\"HostPoints\"];
$sum_pkt_id2 = $sum_pkt_id2 + $vs_dane[\"GuestPoints\"];
}
else {
// gdy gospodarzem bedzie $id2 tzn gracz $id1 wygral
$sum_won_id1++;
$sum_pkt_id1 = $sum_pkt_id1 + $vs_dane[\"GuestPoints\"];
$sum_pkt_id2 = $sum_pkt_id2 + $vs_dane[\"HostPoints\"];
}
}
//wyswietlenie informacji o grach ze sobą
echo '<tr><td>'.$vs_dane[\"TurnID\"].'</td><td><a href=\"index.php?subsite=klub.php&SelGraczID='.$vs_dane[\"HostID\"].'\">'.$id1_name.'</a></td> <td>'.$vs_dane[\"HostPoints\"].'</td><td>vs</td><td>'.$vs_dane[\"GuestPoints\"].'</td>
<td><a href=\"index.php?subsite=klub.php&SelGraczID='.$vs_dane[\"GuestID\"].'\" class=\"txt\">'.$id2_name.'</a></td></tr>';
}
}
//zestawienie wygranych przegranych i remisow i innych statystyk
if ($pass == 1) {
echo '<p>'.$id1_name_m.' : '.$id2_name_m.'</p>'; echo '<div class=\"frame\">'; //**********************************************************88
//poczatek tabeli
echo '<table class=\"zestawienie\"><tr><td>'.$id1_name_m.'</td><td> [ ? ]</td><td>'.$id2_name_m.'</td></tr> <tr><td>'.$sum_won_id1.' / '.$vs_sum.'</td><td>wygranych</td><td >'.$sum_won_id2.' / '.$vs_sum.'</td></tr>
<tr><td>'.$sum_level.' / '.$vs_sum.'</td><td >remisów</td><td >'.$sum_level.' / '.$vs_sum.'</td></tr>
<tr><td>'.($vs_sum-$sum_level-$sum_won_id1).' / '.$vs_sum.'</td><td>porażek</td><td >'.($vs_sum-$sum_level-$sum_won_id2).' / '.$vs_sum.'</td></tr>
<tr><td>'.$sum_pkt_id1.'</td><td>suma MP</td><td >'.$sum_pkt_id2.'</td></tr>';
printf ('<tr><td>%.2f</td><td>średnia MP na mecz</td><td >%.2f</td></tr>',$sum_pkt_id1/$vs_sum,$sum_pkt_id2/$vs_sum); //gdy nie rozegrali z sobą meczu to nie mozna policzyc sredniej !!
//zakonczenie tabeli
}
?>
W kodzie znajduje się część obliczająca zwycięstwa gracza pierwszego i drugiego ($id1 oraz $id2).
Problem polega na tym, że na localhoscie $sum_won_id1 oraz $sum_won_id2 ma wartosc 1 na serwerze zas odpowiednio 0 i 2. Dla pewnego zapytania.
Jak to działa w praktyce moszna zobacyć
TUTAJJak widać z wyświetlonych wyników rywalizacji pomiędzy Krzyśkiem a Tomkiem powinno się wyświetlić po 1 remisie a wyświetla sie stan 2:0 dla Krzysia (na localhoście kod działa poprawnie).
Nie mam zielonego pojęcia czym to może być spowodowane. Ma ktoś jakieś pomysły?
Ten post edytował Aztech 10.02.2005, 01:40:25