TheiLiveX Geschrieben 8. Februar 2017 Melden Share Geschrieben 8. Februar 2017 Hallo zusammen, Ich Arbeite jetzt schon seit ca 4 Tagen daran vlt könnt ihr mir ja helfen?! Ich möchte mit Hilfe eines Spieler names Gold von meiner Datenbank abfragen. Ich habe leider noch kein Hilfreiches tutorial darüber gefunden wie man mit hilfe eines namens in einer datenbank dinge abfragen kann und an Unity senden kann: Hier mein C# script: ------------------------------------------------------------------------------------- using UnityEngine; using System.Collections; using UnityEngine.UI; public class abfrage : MonoBehaviour { public string webString = ""; public Text username_field; public Text anzeige; void Start () { } void Update () { anzeige.text = webString.ToString(); } public IEnumerator LoadData(string username) { string saveURL = "HIER STEHT MEINE URL"; WWWForm form = new WWWForm(); form.AddField("userPost", username); WWW www = new WWW(saveURL, form); webString = www.text; yield return www; } public void DatenSenden() { LoadData(username_field.text); } } ------------------------------------------------------------------------------------- Und hier mein PHP Script: ------------------------------------------------------------------------------------- <?php $servername = "Meine Daten"; $server_username = "Meine Daten"; $server_password = "Meine Daten!"; $dbName = "Meine Daten"; $user_username = $POST["userPost"]; // Verbindung $conn = new mysqli ($servername, $server_username, $server_password, $dbName); // Verbindung Prüfen if(!$conn) { die("Verbindung Gescheitert. ". mysqli_connect_errno()); } $sql = "SELECT gold FROM users WHERE username = '".$user_username."' "; $result = mysqli_query($conn, $sql) or die('Query failed: ' . mysql_error()); $return = ""; $row = mysql_fetch_array($result); $return = $return . $row['gold'] . "|"; echo $return; if(!result) echo "Error"; else echo "Alles ok."; ?> ----------------------------------------------------------------------- Also nun die Frage wie schaffe ich es das Unity einen Spieler namen an die Datenbank sendet und die Datenbank an denn Gold wert zurücksendet?! Danke für jegliche Hilfe! Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Thariel Geschrieben 9. Februar 2017 Melden Share Geschrieben 9. Februar 2017 Hi Wo ist denn jetzt das Problem? Hast du das Script irgendwo kopiert und weisst nicht, wie verwenden? Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Sascha Geschrieben 9. Februar 2017 Melden Share Geschrieben 9. Februar 2017 yield return www; ist die Zeile, mit der man auf den Download der HTTP-Antwort wartet. Diese solltest du ausführen, bevor du mit www.text eben jene Antwort ausliest. Und nebenbei: Mit den blauen <> erstellst du einen Code-Tag, mit dem man deinen Code besser lesen kann Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
TheiLiveX Geschrieben 9. Februar 2017 Autor Melden Share Geschrieben 9. Februar 2017 Soweit so Gut doch ich bekomme in Unity keine Antwort von der Datenbank wie mein Wert ist?! Bei meinem Php script bekomme ich denn Fehler: Warning: mysql_fetch_array() expects parameter 1 to be resource, object given in /var/customers/webs/MeinBenutzerName/TheGame/Gold.php on line 24 |Alles ok. Hier noch mal mein php script: <?php $servername = "MeineDaten"; $server_username = "MeineDaten"; $server_password = "MeineDaten"; $dbName = "MeineDaten"; $user_username = $POST["userPost"]; // Verbindung $conn = new mysqli ($servername, $server_username, $server_password, $dbName); // Verbindung Prüfen if(!$conn) { die("Verbindung Gescheitert. ". mysqli_connect_errno()); } $sql = "SELECT gold FROM users WHERE username = '".$user_username."' "; $result = mysqli_query($conn, $sql) or die('Query failed: ' . mysql_error()); $return = ""; $row = mysql_fetch_array($result); $return = $return . $row['gold'] . "|"; echo $return; if(!result) echo "Error"; else echo "Alles ok."; ?> Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Thariel Geschrieben 9. Februar 2017 Melden Share Geschrieben 9. Februar 2017 Du musst $_POST['userPost'] schreiben. Bei der SQL Syntax würde ich mal nicht so überflüssige Leerzeichen stehen lassen. $sql = "SELECT gold FROM users WHERE username='".$user_username."'"; Versuch mal $return = $row[0] nur mal um auf Nummer sicher zu gehen. Du hast ja nur eine Variable und so funktioniert es immer noch ,auch wenn du "gold" mal umbenennst. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
TheiLiveX Geschrieben 9. Februar 2017 Autor Melden Share Geschrieben 9. Februar 2017 Mhh Klappt immer noch nicht der Fehler ist der gleiche. Warning: mysql_fetch_array() expects parameter 1 to be resource, object given in /var/customers/webs/MeinBenutzerName/TheGame/Gold.php on line 24 |Alles ok. Zeile 24: $row = mysql_fetch_array($result); Php: <?php $servername = "MeineDaten"; $server_username = "MeineDaten"; $server_password = "MeineDaten"; $dbName = "MeineDaten"; $user_username = $_POST["userPost"]; // Verbindung $conn = new mysqli ($servername, $server_username, $server_password, $dbName); // Verbindung Prüfen if(!$conn) { die("Verbindung Gescheitert. ". mysqli_connect_errno()); } $sql = "SELECT gold FROM users WHERE username='".$user_username."'"; $result = mysqli_query($conn, $sql) or die('Query failed: ' . mysql_error()); $return = ""; $row = mysql_fetch_array($result); $return = $row[0]; echo $return; if(!result) echo "Error"; else echo "Alles ok."; ?> C# using UnityEngine; using System.Collections; using UnityEngine.UI; public class abfrage : MonoBehaviour { public string webString = ""; public Text username_field; public Text anzeige; void Start () { } void Update () { anzeige.text = webString.ToString(); } IEnumerator LoadData(string username) { string saveURL = "MeineLINK"; WWWForm form = new WWWForm(); form.AddField("userPost", username); WWW www = new WWW(saveURL, form); yield return www; webString = www.text; } public void DatenSenden() { LoadData(username_field.text); } } Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Sascha Geschrieben 9. Februar 2017 Melden Share Geschrieben 9. Februar 2017 Dein Problem löst sich von alleine, wenn du nicht uralte MySQL-Funktionen benutzt Heutzutage benutzt man PDO, die ganzen Funktionen die mit "mysql_" anfangen sollte man nicht mehr benutzen. Hier ein nettes Tutorial dafür. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
TheiLiveX Geschrieben 9. Februar 2017 Autor Melden Share Geschrieben 9. Februar 2017 ohh ok danke für denn Tipp also auf gehts in die 2. Runde Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
TheiLiveX Geschrieben 9. Februar 2017 Autor Melden Share Geschrieben 9. Februar 2017 Ok nun habe ich es geschafft Daten in Unity zu Übertragen doch nun meine 2. Frage: Unity soll ja denn namen des Spielers übertragen und dann als Antwort den Gold wert erhalten doch es klappt schon wieder nicht so langsam verzweifel ich an diesem Script :/ C# Script: using UnityEngine; using System.Collections; using UnityEngine.UI; public class aaa : MonoBehaviour { public Text usern_field; string saveURL = "MeineURL"; IEnumerator LoadData(string user) { WWWForm form = new WWWForm(); form.AddField("id", user); WWW www = new WWW(saveURL, form); yield return www; string wwwString = www.text; print(wwwString); } public void DatenSenden() { LoadData(usern_field.text); } } Mein Php Script: <?php $pdo = new PDO('mysql:host=MeineDaten;dbname=MeineDaten', 'MeineDaten', 'MeineDaten'); if(isset($_GET['id'])) { $id = $_GET['id']; } else { die("Bitte eine ?id übergeben"); } $sql = "SELECT gold, wc FROM users WHERE id = $id"; foreach ($pdo->query($sql) as $row) { echo $row['gold']." ".$row['wc'].""; } ?> Ich weis echt nicht was ich Falsch mache, doch auf der Website die du mir gesendet hast wird leider nicht erklärt wie man mit c# Daten übermittelt ! Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Sascha Geschrieben 9. Februar 2017 Melden Share Geschrieben 9. Februar 2017 In $_GET stehen die Parameter in der URL: http://www.example.com/?id=TheiLiveX Sachen, die im POST-Teil des Headers mitgesendet werden, stehen in $_POST. WWWForm sendet seine Felder über POST. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Recommended Posts
Archiviert
Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.