Okulum için ping pong puanlarını günlüğe kaydetmek için php'de bir web sitesi oluşturuyorum ve şu anda kazanan oyuncu WinnerID, LoserID, PointsFor, PointsAgainst
'u günlüğe kaydedecektir. Aşağıdaki ilişkilerle iki tablom var.Puan attı puan kazandıktan yardıma ihtiyacım var
Tablo: Kullanıcıların
- USER_ID (PK)
- kullanıcı adı
- Elo
Tablo: oyunlar
- game_id (PK)
- WinnerID (FK)
- LoserID
- PointsAgainst (FK)
- PointsFor
php dosyasında Benim insert ifadesi:
İşteINSERT INTO games(WinnerID,LoserID,PointsFor,PointsAgainst) VALUES('$Winner_ID','$Loser_ID','$userscore','$oppscore')"
ne denedim, ama göstermez puanlar doğru. Yukarıdaki resimde de görebileceğiniz gibi
SELECT min(u.username) 'Username', COUNT(g.WinnerID) 'Wins', sum(g.PointsFor) 'Points For', sum(g.PointsAgainst) 'Points Against', u.Elo 'Ranking'
from games g
LEFT JOIN users u
on g.WinnerID = u.user_id
Group by g.WinnerID
, toplamlarınıza için puan ve puan eklemek yok. Şu anda, sadece kazanan kimsenin istatistiklerini gösterir. Eğer PlayerA 21-5 kazanırsa, seçim ifadesinden görünecektir, ancak PlayerB 5-21'lik bir skor göstermeyecektir. Herhangi bir yardım takdir edilir. sayfa puanları girmek için
PHP kodu:
if(isset($_POST['btn-post']))
{
$opponent = $_POST["opponent"];
//$opponent = array_key_exists('opponent', $_POST) ? $_POST['opponent'] : false;
$userscore = mysql_real_escape_string($_POST['userscore']);
$oppscore = mysql_real_escape_string($_POST['oppscore']);
if($userscore != $oppscore)
{
if($userscore > $oppscore)
{
$Winner_ID = $_SESSION['user'];
$query = mysql_query("SELECT user_id FROM users WHERE username = '".$opponent."'");
$result = mysql_fetch_array($query) or die(mysql_error());
$Loser_ID = $result['user_id'];
$query1 = mysql_query("SELECT Elo FROM users WHERE user_id=".$_SESSION['user']);
$result1 = mysql_fetch_array($query1) or die(mysql_error());
$winnerRating = $result1['Elo'];
$query2 = mysql_query("SELECT Elo FROM users WHERE user_id=".$Loser_ID);
$result2 = mysql_fetch_array($query2) or die(mysql_error());
$loserRating = $result1['Elo'];
$rating = new Rating($winnerRating, $loserRating, 1, 0);
$results = $rating->getNewRatings();
if(mysql_query("UPDATE users SET Elo = " . $results['a'] . " WHERE user_id=".$_SESSION['user']))
{
}
else
{
?>
<script>alert('There was an error while entering winners(user) ranking...');</script>
<?php
}
if(mysql_query("UPDATE users SET Elo = " . $results['b'] . " WHERE user_id=".$Loser_ID))
{
}
else
{
?>
<script>alert('There was an error while entering losers(opp) ranking..');</script>
<?php
}
}
elseif($oppscore > $userscore)
{
$Loser_ID = $_SESSION['user'];
$query = mysql_query("SELECT user_id FROM users WHERE username = '".$opponent."'");
$result = mysql_fetch_array($query) or die(mysql_error());
$Winner_ID = $result['user_id'];
//get rating from user table in database
$query1 = mysql_query("SELECT Elo FROM users WHERE user_id=".$_SESSION['user']);
$result1 = mysql_fetch_array($query1) or die(mysql_error());
$loserRating = $result1['Elo'];
$query2 = mysql_query("SELECT Elo FROM users WHERE user_id=".$Loser_ID);
$result2 = mysql_fetch_array($query2) or die(mysql_error());
$winnerRating = $result1['Elo'];
$rating = new Rating($winnerRating, $loserRating, 1, 0);
$results = $rating->getNewRatings();
$results = $rating->getNewRatings();
if(mysql_query("UPDATE users SET Elo = " . $results['b'] . " WHERE user_id=".$_SESSION['user']))
{
}
else
{
?>
<script>alert('There was an error while entering losers(user) ranking...');</script>
<?php
}
if(mysql_query("UPDATE users SET Elo = " . $results['a'] . " WHERE user_id=".$Winner_ID))
{
}
else
{
?>
<script>alert('There was an error while entering winners(opp) ranking...');</script>
<?php
}
}
if(mysql_query("INSERT INTO games(WinnerID,LoserID,PointsFor,PointsAgainst) VALUES('$Winner_ID','$Loser_ID','$userscore','$oppscore')"))
{
?>
<script>alert('Your scores were successfully entered');</script>
<?php
}
else
{
?>
<script>alert('There was an error while entering your score...');</script>
<?php
}
}
else
{
?>
<script>alert('There cannot be a tie in ping pong, please re-enter your scores...');</script>
<?php
}
}
?>
Yani asıl sorunun, kaybedenin sadece kazananı gösteren sorgunuzda göstericinin nasıl görünmesi gerektiği? – Sean
Bize şimdi SELECT'inizin ne getirdiğini ve geri dönmesini istediğiniz şeyin bir örneğini gösterebilir misiniz? –
@Sean Tam Olarak. Sadece WinnerID için bilgi görüntüler, inanıyorum, yanılıyorsam beni düzeltin. Benim meselem, bu ve buna karşı olan puanların eklenmemesi. Eşit olurdu. Kazanç ve kayıplarla aynı. –