2017-08-18 7 views
2

私はトリビアを作って、最後に名前、姓、電話番号、電子メールアドレスなどのユーザデータ用の5つの入力フィールドを持っています。このデータを格納するためにmySQLとphpmyadminでデータベースを作成しました。私はすべてのウィンドウがうまく動作するが、私はアンドロイドタブレットのために構築する必要がありますが、私は誰も私を助けることができる場合、私はうれしいだろう、データベースの作業を取得することができません!オフラインmySQLデータベースを使ってandroidのためのUnityでゲームを作る

これは、データベース管理のための私のC#の統一スクリプトです:

using System.Collections; 
using UnityEngine.UI; 
using UnityEngine; 

public class GestorBD : MonoBehaviour 
{ 

public InputField txtnombre; 
public InputField txtapellido; 
public InputField txtci; 
public InputField txttel; 
public InputField txtmail; 

public string nombrenombre; 
public string apellidoapellido; 
public int cici; 
public int tel; 
public string mail; 

public bool sesionIniciada = false; 

/// Respuestas WEB 
/// 
/// 200 = datos encontrados 
/// 201 = usuario registrado 
/// 
/// 400 = no pudo establecer coneccion 
/// 401 = no enconto datos 
/// 402 = el usuario ya existe 



public void IniciarSesion() 
{ 
    StartCoroutine(Login()); 
    StartCoroutine(datos()); 
} 
public void Registrarnombre() 
{ 
    StartCoroutine(Registrar()); 
} 

IEnumerator Login() 
{ 
    WWW coneccion = new WWW("http://127.0.0.1/trivia/login.php?nom=" + 
txtnombre.text + "&ape=" + txtapellido.text + "&ci=" + txtci.text + "&tel=" 
+ txttel.text + "&mai=" + txtmail); 
    yield return (coneccion); 
    if (coneccion.text == "200") 
    { 
     print("el usuario si existe"); 
    } 
    else if (coneccion.text == "401") 
    { 
     print("usuario o contrasena incorrectos"); 
    } 
    else 
    { 
     print("error en la coneccion con la base de datos"); 
    } 
} 

IEnumerator datos() 
{ 
    WWW coneccion = new WWW("http://127.0.0.1/trivia/datos.php?nom=" + 
txtnombre.text + "&ape=" + txtapellido.text + "&ci=" + txtci.text + "&tel=" 
+ txttel.text + "&mai=" + txtmail); 
    yield return (coneccion); 
    if (coneccion.text == "401") 
    { 
     print("usuario o contrasena incorrectos"); 
    } 
    else 
    { 
     string[] nDatos = coneccion.text.Split('^'); 
     if (nDatos.Length != 2) 
     { 
      print("error en la coneccion"); 
     } 
     else 
     { 
      nombrenombre = nDatos[0]; 
      apellidoapellido = nDatos[1]; 
      cici = int.Parse(nDatos[2]); 
      tel = int.Parse(nDatos[3]); 
      mail = nDatos[4]; 
      sesionIniciada = true; 
     } 
    } 
} 

IEnumerator Registrar() 
{ 
    WWW coneccion = new WWW("http://127.0.0.1/trivia/registro.php?nom=" + 
txtnombre.text + "&ape=" + txtapellido.text + "&ci=" + txtci.text + "&tel=" 
+ txttel.text + "&mai=" + txtmail.text); 
    yield return (coneccion); 
    if (coneccion.text == "402") 
     Debug.LogError("usuario ya existe!"); 

    else if (coneccion.text == "201") 
    { 
     nombrenombre = txtnombre.text; 
     apellidoapellido = txtapellido.text; 
     sesionIniciada = true; 

    } 
    else 
    { 
     Debug.LogError("error en la coneccion con la base de datos"); 
    } 

    } 


} 

そしてこれは、ログインのための私のPHPファイルです:

<?php 

$servidor = 'localhost'; 
$user  = 'root'; 
$password = ''; 
$baseDatos = 'trivia'; 

$conexion = new mysqli($servidor, $user, $password, $baseDatos); 

$nom  = $_GET['nom']; 

if (!$conexion) 
{ 
    echo "400"; 
} 
else 
{ 
    $sql = "SELECT * FROM usuarios WHERE nombre LIKE '$nom'"; 
    $resultado = mysqli_query($conexion, $sql); 
    if (mysqli_num_rows($resultado)>0) 
    { 
     while ($row = mysqli_fetch_assoc($resultado)){ 
     echo 

$row['nombre']."^".$row['apellido']."^".$row['ci']."^".$row['tel'] 
."^".$row['mail']; 
     } 
    } 
    else 
    { 

     echo "401"; 
    } 
} 

?> 

:データの

<?php 

$servidor = 'localhost'; 
$user  = 'root'; 
$password = ''; 
$baseDatos = 'trivia'; 

$conexion = new mysqli($servidor, $user, $password, $baseDatos); 

$nom  = $_GET['nom']; 
$ape  = $_GET['ape']; 
$ci  = $_GET['ci']; 
$tel  = $_GET['tel']; 
$mai  = $_GET['mai']; 

if (!$conexion) 
{ 
    echo "error"; 
} 
else 
{ 
    $sql = "SELECT * FROM usuarios WHERE nombre LIKE '$nom' AND apellido 
    LIKE '$ape' AND ci LIKE '$ci' AND tel LIKE '$tel' AND mail LIKE '$mai'"; 
    $resultado = mysqli_query($conexion, $sql); 
    if (mysqli_num_rows($resultado)>0) 
    { 
     echo "bien"; 
    } 
    else 
    { 

     echo "mal"; 
    } 
} 

?> 

私のPHPファイルと登録のための私のPHPファイル:

<?php 

$servidor = 'localhost'; 
$user  = 'root'; 
$password = ''; 
$baseDatos = 'trivia'; 

$conexion = new mysqli($servidor, $user, $password, $baseDatos); 

$nom  = $_GET['nom']; 
$ape  = $_GET['ape']; 
$ci  = $_GET['ci']; 
$tel  = $_GET['tel']; 
$mai  = $_GET['mai']; 

if (!$conexion) 
{ 
    echo "400"; 
} 
else 
{ 
    $sql = "SELECT * FROM usuarios WHERE ci LIKE '$ci'"; 

    $resultado = mysqli_query($conexion, $sql); 
    if (mysqli_num_rows($resultado)>0) 
    { 
     echo "402"; 
    } 
    else 
    { 
     $sql = "INSERT INTO usuarios (id, nombre, apellido, ci, tel, mail) 
VALUES (NULL, '$nom', '$ape', '$ci', '$tel', '$mai')"; 
     $resultado = mysqli_query($conexion, $sql); 
     echo "201"; 
    } 
    } 

?> 

ありがとう!

+0

私は、データベースをローカルホストとしてオフラインにする必要があることを忘れてしまいました。 – chino

+0

それでは、問題はもう存在しますか? – loki

+0

ゲームにエラーはありませんが、データベースには情報が格納されず、問題が見つかりません – chino

答えて

0

あなたのPCのようにローカルサーバーが設定されていないので、Localhostはアンドロイドでは動作しません。ローカルデータベースに格納する場合は、sqlite(https://www.sqlite.org)のようなものを使用する必要があります。また、sqliteのアセットストアには無料のアセットがあります。https://www.assetstore.unity3d.com/en/#!/content/20660

リモートサーバーの場合、実際のサーバーの資格情報を使用すると動作します。

関連する問題