[Résolu]Connexion BDD MySQL
[Résolu]Connexion BDD MySQL
Bonjour,
Je viens de me mettre à Unity, mon problème est le suivant je cherche à récupérer des données (chaines de caractères) qui se trouvent dans une base de données locales MySQL via des requêtes SQL me permettant de récupérer ces chaînes de caractères pour les intégrer dans une info-bulle.
J'ai déjà fait plusieurs essais qui se sont révélés infructueux notamment avec cette méthode :
http://forum.unity3d.com/threads/63364-Unity-with-MySQL
Si vous pouviez m'aider sur ce problème ce serait génial.
Bonnes fêtes à tous
Je viens de me mettre à Unity, mon problème est le suivant je cherche à récupérer des données (chaines de caractères) qui se trouvent dans une base de données locales MySQL via des requêtes SQL me permettant de récupérer ces chaînes de caractères pour les intégrer dans une info-bulle.
J'ai déjà fait plusieurs essais qui se sont révélés infructueux notamment avec cette méthode :
http://forum.unity3d.com/threads/63364-Unity-with-MySQL
Si vous pouviez m'aider sur ce problème ce serait génial.
Bonnes fêtes à tous
Dernière édition par arutha67 le 08 Avr 2013 14:10, édité 1 fois.
Re: Connexion BDD MySQL
Salut,
Ca serait d'abord pour PC puis peut être plus tard pour le Web...
Ca serait d'abord pour PC puis peut être plus tard pour le Web...
Re: Connexion BDD MySQL
Salut,
Pour la base il y a ça http://wiki.unity3d.com/index.php?title ... Highscores
Ensuite pour pousser le truc il faudra revoir le tout mais le principe basique est là
Pour la base il y a ça http://wiki.unity3d.com/index.php?title ... Highscores
Ensuite pour pousser le truc il faudra revoir le tout mais le principe basique est là
Re: Connexion BDD MySQL
Pour le web il va falloir ruser alors
C'est à cause de la sécurité qu'il n'est pas possible de faire des appels SQL sur un webplayer. La méthode pour résoudre ce problème et de passer par du PHP.
Il faut faire un appel PHP classique avec unity, et la page PHP va s'occuper de faire la requête SQL et de balancer le résultat dans le retour de ton appel. C'est pas très pratique, mais ça marche partout (mobile, web, standalone...).
C'est à cause de la sécurité qu'il n'est pas possible de faire des appels SQL sur un webplayer. La méthode pour résoudre ce problème et de passer par du PHP.
Il faut faire un appel PHP classique avec unity, et la page PHP va s'occuper de faire la requête SQL et de balancer le résultat dans le retour de ton appel. C'est pas très pratique, mais ça marche partout (mobile, web, standalone...).
Re: Connexion BDD MySQL
Merci pour ta réponse ça m'aide beaucoup.Freelax a écrit :Salut,
Pour la base il y a ça http://wiki.unity3d.com/index.php?title ... Highscores
J'ai bien compris le principe. Par contre je ne vois pas où il faut placer le fichier .php pour qu'il puisse être appelé dans je JS. Si tu pouvais m'éclairer ça serait génial !
J'utilise easyphp pour ma BDD qio est en local et j'ai un serveur exact.
Dsl pour les informations imprécises et ces questions basiques c'est ma première BDD...
Re: Connexion BDD MySQL
ton fichier php, tu le place dans le www de ton serveur php (sinon il marchera jamais) du type wamp, easyphp, ensuite il te faut mettre ton webplayer dans le même dossier ( la il n'y aura rien à rajouter comme ça ) sinon il faut rajouter un fichier xml crossdomain à l'emplacement de ton webplayer pour accéder à ton fichier php : http://docs.unity3d.com/Documentation/M ... ndbox.html
dans ton code JS sous unity, tu appel ta page php avec la classe WWW , http://docs.unity3d.com/Documentation/S ... e/WWW.html , tu peux récupérer le résultat en le mettant dans un echo dans ta page php, et tu récupère ce résultat grâce à WWW.text . tu obtiens alors ton résultat sous forme de texte dans unity, pense à utiliser split si ta page php ne renvois pas qu'un seul élément. Après à toi de traiter tes résultats, notamment avec des int.Parse(string) .
dans ton code JS sous unity, tu appel ta page php avec la classe WWW , http://docs.unity3d.com/Documentation/S ... e/WWW.html , tu peux récupérer le résultat en le mettant dans un echo dans ta page php, et tu récupère ce résultat grâce à WWW.text . tu obtiens alors ton résultat sous forme de texte dans unity, pense à utiliser split si ta page php ne renvois pas qu'un seul élément. Après à toi de traiter tes résultats, notamment avec des int.Parse(string) .
┬─┬ノ(º - ºノ) - (╯°□°)╯︵ ┻━┻
Re: Connexion BDD MySQL
En gros pour faire simple:
#region ----------------ServeurWeb
--------------------------
----- BDD MYSQL -----
--------------------------
Communique avec grace à :
------------------------
----- PHP -----
------------------------
un exemple de page php:
Le client va donc recevoir une page html avec un truck bien lourd et groupé.
#endregion ----------------ServeurWeb
#region ----------------ClientUnity
// peut être aussi un serveur bien sur
Formulaire WWW
exemple c'était un bouton qui allais chercher dans ma bdd mysql les serveurs (Csharp - C#):
Le bouton (à placer dans "OnGUI(){}" ):
La function (Csharp - C#) :
Ps: StartCoroutine est obligatoire sinon il va essayer de continuer le code après avoir envoyé ton formulaire sans avoir eu la réponse de la bdd.
#endregion ----------------ClientUnity
j'ai essayer de montrer un exemple concret tout ne se recoupe pas mais sa permet de donner un exemple de chaque
à toi de faire des tests pour arriver à la réussite.
Ps2: j'ai supprimer les données perso
Ps3: je suis loin d'être un pro mais sa marche
Cordialement Glorek
#region ----------------ServeurWeb
--------------------------
----- BDD MYSQL -----
--------------------------
Communique avec grace à :
------------------------
----- PHP -----
------------------------
un exemple de page php:
Code : Tout sélectionner
<?PHP
$host='bdd.com';
$db_name='name';
$db_user='user';
$db_pass='pass';
try{
$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
$bdd = new PDO('mysql:host='.$host.';dbname='.$db_name, $db_user, $db_pass, $pdo_options);
} catch (PDOException $e){
die("Erreur ! : ".$e->getMessage() );
}
if( true)//!empty($_POST['ACTION']) && $_POST['ACTION'] == "BASE" )
{
$reqListServer = "";
$rep = $bdd->query(" SELECT * FROM BDD_a_cherche WHERE statue ='1' ") or die('Erreur SQL : <br />'.$sql);
while($don = $rep->fetch())
{
if($don['level'] == 1)
{
$reqListServer .= $don['nameServer']."=".$don['pass']."=".$don['IP']."=".$don['port']."=".$don['joueurMax']."=".$don['keyServer']."|";
}
}
die($reqListServer);
$rep -> closeCursor();
}
?>
Le client va donc recevoir une page html avec un truck bien lourd et groupé.
#endregion ----------------ServeurWeb
#region ----------------ClientUnity
// peut être aussi un serveur bien sur
Formulaire WWW
exemple c'était un bouton qui allais chercher dans ma bdd mysql les serveurs (Csharp - C#):
Le bouton (à placer dans "OnGUI(){}" ):
Code : Tout sélectionner
if( GUI.Button( new Rect( 20, 50 + espacement * 4, ButtonWidth, ButtonHeight ), "Refresh") )
{
WWWForm form = new WWWForm();
form.AddField("ACTION", "BASE");
WWW showServerURL = new WWW("http://tonsite.com/listServer.php", form);
StartCoroutine(showServer(showServerURL));
}
Code : Tout sélectionner
IEnumerator showServer(WWW w)
{
yield return w;
if (w.error == null)
{
string serverPack = w.text;
char[] splitchar = { '|' };//permet de passer plusieurs arguments séparer par un caractère ici "|"
serverList = serverPack.Split( splitchar );
messageInfo = serverList[0];
refreshON =true;
}
else
{
messageInfo = "ERROR: " + w.error;
}
}
Ps: StartCoroutine est obligatoire sinon il va essayer de continuer le code après avoir envoyé ton formulaire sans avoir eu la réponse de la bdd.
#endregion ----------------ClientUnity
j'ai essayer de montrer un exemple concret tout ne se recoupe pas mais sa permet de donner un exemple de chaque
à toi de faire des tests pour arriver à la réussite.
Ps2: j'ai supprimer les données perso
Ps3: je suis loin d'être un pro mais sa marche
Cordialement Glorek
Dernière édition par Glorek le 03 Jan 2013 17:02, édité 3 fois.
Re: Connexion BDD MySQL
de toute manière, WWW ne peux être utilisé que dans une coroutine il me semble ^^ .Glorek a écrit : Ps: StartCoroutine est obligatoire sinon il va essayer de continuer le code après avoir envoyé ton formulaire sans avoir eu la réponse de la bdd.
Beau boulot pour l'aide , bien plus travaillé que moi
┬─┬ノ(º - ºノ) - (╯°□°)╯︵ ┻━┻
Re: Connexion BDD MySQL
Mini info: si ça code en JS, pas besoin du mot clé StartCoroutine.