Adding and displaying new stats from a high score board
<p>Right now I've got my high score boardsaved as an SQL database which I'm accessing through Unity with some PHP scripts. My original score board allowed me to store a users name and their score, but I'm trying to add extra fields like accuracy etc. However, my new field isn't being displayed or passed to my server.</p>

<p>I have two PHP scripts called display.php and addscrore.php (spelling mistake I'll fix). Display.php looks like the following:</p>

<pre><code>&lt;?php
// Send variables for the MySQL database class.
$database = mysql_connect('localhost', 'dark', 'dark') or die('Could not connect: ' . mysql_error());
mysql_select_db('dark') or die('Could not select database');

$query = "SELECT * FROM `scores` ORDER by `score` DESC LIMIT 5";
$result = mysql_query($query) or die('Query failed: ' . mysql_error());

$num_results = mysql_num_rows($result);  

for($i = 0; $i &lt; $num_results; $i++)
{
     $row = mysql_fetch_array($result);
     echo $row['name'] . "\t" . $row['score'] . "\t" . $row['accuracy'] . "\n";
}
?&gt;
</code></pre>

<p>Addscrore.php looks like this:</p>

<pre><code>&lt;?php 
        $db = mysql_connect('localhost', 'dark', 'dark') or die('Could not connect: ' . mysql_error()); 
        mysql_select_db('dark') or die('Could not select database');

        // Strings must be escaped to prevent SQL injection attack. 
        $name = mysql_real_escape_string($_GET['name'], $db); 
        $score = mysql_real_escape_string($_GET['score'], $db); 
     $accuracy = mysql_real_escape_string($_GET['accuracy'], $db);
        $hash = $_GET['hash']; 

        $secretKey="mySecretKey"; # Change this value to match the value stored in the client javascript below 

        $real_hash = md5($name . $score . $accuracy . $secretKey); 
        if($real_hash == $hash) 
     { 
            // Send variables for the MySQL database class. 
            $query = "insert into scores values (NULL, '$name', '$score', '$accuracy');"; 
            $result = mysql_query($query) or die('Query failed: ' . mysql_error()); 
        } 
?&gt;
</code></pre>

<p>Then, in my Unity program I've made my HSController class with the following code:</p>

<pre><code>using UnityEngine;
using System.Collections;

public class HSController : MonoBehaviour 
{
private string secretKey = "mySecretKey"; // Edit this value and make sure it's the same as the one stored on the server
public string addScoreURL = "/score/addscrore.php?"; //be sure to add a ? to your url
public string highscoreURL = "highscoretable/display.php";

void Start()
{


    StartCoroutine(GetScores());
}

    // remember to use StartCoroutine when calling this function!
    public IEnumerator PostScores(string name, int score, float accuracy)
    {
        //This connects to a server side php script that will add the name and score to a MySQL DB.
        // Supply it with a string representing the players name and the players score.
        string hash = MD5.Md5Sum(name + score + accuracy + secretKey);

        string post_url = addScoreURL + "name=" + WWW.EscapeURL(name) + "&amp;score=" + score + "&amp;accuracy" + accuracy + "&amp;hash=" + hash;

        // Post the URL to the site and create a download object to get the result.
        WWW hs_post = new WWW(post_url);
        yield return hs_post; // Wait until the download is done

        if (hs_post.error != null)
        {
            print("There was an error posting the high score: " + hs_post.error);
        }
    }

    // Get the scores from the MySQL DB to display in a GUIText.
    // remember to use StartCoroutine when calling this function!
   public IEnumerator GetScores()
    {
        gameObject.guiText.text = "Loading Scores";
        WWW hs_get = new WWW(highscoreURL);
        yield return hs_get;

        if (hs_get.error != null)
        {
            print("There was an error getting the high score: " + hs_get.error);
        }
        else
        {
            gameObject.guiText.text = hs_get.text; // this is a GUIText that will display the scores in game.
        }


     }
    }
</code></pre>

<p>Then, when I want to add some new information to my table I call the following line of code:</p>

<pre><code>  string name = "Rawr";
    int score = 1325;
    float accuracy = 40.0f;
    HSController _test;


    // Use this for initialization
    void Start()
    {
        _test = new HSController();
        StartCoroutine(_test.PostScores(name, score,accuracy));
    }
</code></pre>

<p>However, with all of this, my new field, accuracy, still isn't being displayed. Can anyone see what I'm doing wrong and why my new field isn't being displayed when I call it?</p>
