Jump to content
Unity Insider Forum

PHP Daten abfragen


TheiLiveX

Recommended Posts

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

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

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

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

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

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

Archiviert

Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.

×
×
  • Neu erstellen...