Browse Source

Find Random Player sql

Axel Nordh 5 years ago
parent
commit
4494d9c80a

+ 5 - 2
Assets/Scripts/Database/Database.cs

@@ -147,11 +147,14 @@ public class Database : MonoBehaviour {
         CloseConnection();
     }
     
-    internal void FindRandomPlayer()
+    internal List<OnlineDatabase.UserName> FindRandomPlayer(int playerId)
     {
+        List<OnlineDatabase.UserName> result = new List<OnlineDatabase.UserName>();
         if (gameMode.Equals("Online")) {
-            OnlineDatabase.Instance.FindRandomPlayer();
+            result = OnlineDatabase.Instance.FindRandomPlayer(playerId);
         }
+
+        return result;
     }
 
     private IDbCommand GetConnection() {

+ 16 - 23
Assets/Scripts/Database/OnlineDatabase.cs

@@ -631,28 +631,18 @@ public class OnlineDatabase : MonoBehaviour {
     }
 
     public List<UserName> GetUsersToInvite(string searchString) {
-        string postUrl = "narkampen.nordh.xyz/narKampen/dbFiles/PlayerSearch.php?";
-        postUrl += "search=" + UnityWebRequest.EscapeURL(searchString);
+        WWWForm form = new WWWForm();
+        form.AddField("searchString", UnityWebRequest.EscapeURL(searchString));
+        form.AddField("f", "PlayerSearch");
 
-        UserNames uNames = new UserNames();
-        UnityWebRequest www = UnityWebRequest.Get(postUrl);
-        www.SendWebRequest();
+        String response = CallOnlineDatabaseWithResponse("PlayerSearch.php", form);
 
-        if (www.isNetworkError || www.isHttpError) {
-            Debug.Log(www.error);
-        } else {
-            while (!www.isDone) {
-            }
-            // Show result
-            string jsonData = www.downloadHandler.text;
+        response = "{\"usernamesList\" :  " + response + " }";
 
-            if (!jsonData.Equals("")) {
-                jsonData = "{\"usernamesList\" :  " + jsonData + " }";
+        UserNames uNames = new UserNames();
+
+        JsonUtility.FromJsonOverwrite(response, uNames);
 
-                JsonUtility.FromJsonOverwrite(jsonData, uNames);
-            }
-        }
-        // TODO handle empty
         return uNames.usernamesList;
     }
 
@@ -703,16 +693,19 @@ public class OnlineDatabase : MonoBehaviour {
     }
 
     
-    internal List<string> FindRandomPlayer() {
+    internal List<UserName> FindRandomPlayer(int playerId) {
         List<string> returnValue = new List<string>();
         WWWForm form = new WWWForm();
-        form.AddField("f", "FindRandomPlayer");
+        form.AddField("playerId", playerId);
+        form.AddField("f", "FindRandomPlayers");
 
-        String response = CallOnlineDatabaseWithResponse("", form);
+        String response = CallOnlineDatabaseWithResponse("PlayerSearch.php", form);
         
-        //TODO FIX ME
+        UserNames uNames = new UserNames();
 
-        return returnValue;
+        JsonUtility.FromJsonOverwrite(response, uNames);
+
+        return uNames.usernamesList;
     }
 
 

+ 1 - 1
Assets/Scripts/NewGameScene/InvitePanelScript.cs

@@ -65,7 +65,7 @@ public class InvitePanelScript : MonoBehaviour {
     }
 
     void FindRandomPlayer() {
-        Database.Instance.FindRandomPlayer();
+        List<OnlineDatabase.UserName> users = Database.Instance.FindRandomPlayer(Database.Instance.GetSignedInUser().Key);
     }
 
     public List<InviteSearchResult> GetSelectedUsersForInvite() {

+ 3 - 3
ProjectSettings/ProjectSettings.asset

@@ -121,7 +121,7 @@ PlayerSettings:
     16:10: 1
     16:9: 1
     Others: 1
-  bundleVersion: 0.51
+  bundleVersion: 0.52
   preloadedAssets: []
   metroInputSource: 0
   wsaTransparentSwapchain: 0
@@ -167,9 +167,9 @@ PlayerSettings:
   applicationIdentifier:
     Android: se.axelnordh.narkampen
   buildNumber: {}
-  AndroidBundleVersionCode: 23
+  AndroidBundleVersionCode: 24
   AndroidMinSdkVersion: 19
-  AndroidTargetSdkVersion: 0
+  AndroidTargetSdkVersion: 30
   AndroidPreferredInstallLocation: 1
   aotOptions: 
   stripEngineCode: 1

+ 37 - 15
dbFiles/PlayerSearch.php

@@ -12,23 +12,45 @@
 	}
 	mysqli_set_charset($conn,'utf8');
 	
-	$searchString = $conn->real_escape_string($_GET['search']);
-	
-	$sql = "SELECT id, username FROM users WHERE username LIKE '%$searchString%' LIMIT 20";
-	
-	$result = mysqli_query($conn, $sql);
-	
-	$json = array();
-	
-	if (mysqli_num_rows($result) > 0) {
-		while ($row = mysqli_fetch_assoc($result)) {
-			$json[] = array('id' => $row['id'],
+	$function = $_POST["f"];
+
+	if ($function === "PlayerSearch") {
+		$searchString = $_POST["SearchString"];
+		
+		$sql = "SELECT id, username FROM users WHERE username LIKE '%$searchString%' LIMIT 20";
+		
+		$result = mysqli_query($conn, $sql);
+		
+		$json = array();
+		
+		if (mysqli_num_rows($result) > 0) {
+			while ($row = mysqli_fetch_assoc($result)) {
+				$json[] = array('id' => $row['id'],
 				'username' => $row['username']);
+			}
+			$jsonString = json_encode($json);
+			echo $jsonString;
+		} else {
+			echo "";
+		}
+	} else if ($function === "FindRandomPlayers") {
+		$currentPlayerId = $_POST['playerId'];
+		$sql = "SELECT id, username FROM users WHERE id != $currentPlayerId ORDER BY RAND() LIMIT 10";
+
+		$result = mysqli_query($conn, $sql);
+		if (mysqli_num_rows($result) > 0) {
+			$json = array();
+			while ($row = mysqli_fetch_assoc($result)) {
+				$json[] = array('id' => $row["playerId"],
+				'username' => $row["username"]);
+			}
+
+			echo json_encode($json);
+		} else {
+			echo "";
 		}
-		$jsonString = json_encode($json);
-		echo $jsonString;
 	} else {
-		echo "";
+		echo "No Function Found";
 	}
-
+		
 ?>