अंक से जीत और नुकसान की गणना करने में मदद की ज़रूरत है। मैं अपने स्कूल के लिए पिंग पोंग स्कोर लॉग करने के लिए PHP में एक वेबसाइट बना रहा हूं, और वर्तमान में जो खिलाड़ी जीतता है वह WinnerID, LoserID, PointsFor, PointsAgainst
लॉग करेगा। मेरे पास निम्नलिखित संबंधों के साथ दो टेबल हैं।अंक
तालिका: उन
- user_id (पी)
- उपयोगकर्ता नाम
- एलो
तालिका: खेल
- game_id (पी)
- WinnerID (FK)
- LoserID (FK)
- PointsFor
- PointsAgainst
php फ़ाइल में मेरे डालने कथन है:
INSERT INTO games(WinnerID,LoserID,PointsFor,PointsAgainst) VALUES('$Winner_ID','$Loser_ID','$userscore','$oppscore')"
यहाँ मैं क्या कोशिश की है, लेकिन यह प्रदर्शित नहीं करता है स्कोर सही ढंग से।
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
ऊपर छवि से देख सकते हैं, के लिए अंक और कुल योग पर अंक को जोड़ नहीं है। वर्तमान में, यह केवल विजेता के लिए आंकड़े दिखाता है। इसका अर्थ यह है कि यदि प्लेयर ए 21-5 जीतता है, तो यह चयन कथन से दिखाई देगा, लेकिन प्लेयरबी 5-21 का स्कोर नहीं दिखाएगा। किसी भी मदद की सराहना की है। पेज स्कोर दर्ज करने के लिए के लिए
PHP कोड:
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
}
}
?>
तो आपका वास्तविक प्रश्न यह है कि आपकी क्वेरी में हारने वाले को कैसे प्राप्त किया जाए जो वर्तमान में केवल विजेता को दिखाता है? – Sean
क्या आप हमें एक उदाहरण दिखा सकते हैं कि अब आपका 'चयन' रिटर्न क्या है, साथ ही साथ आप इसे वापस लौटना चाहते हैं? –
@ सीन बिल्कुल। यह केवल विजेता आईडी के लिए जानकारी प्रदर्शित करता है, मेरा मानना है कि अगर मैं गलत हूं तो मुझे सही करें। मेरी समस्या यह है कि अंक के लिए और इसके खिलाफ अंक नहीं जोड़ते हैं। वे बराबर होंगे। जीत और नुकसान के साथ ही। –