Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
Tags
0
Members

[API] Mysql

A topic by fiurino created Oct 04, 2018 Views: 639 Replies: 4
Viewing posts 1 to 2
(2 edits)

Pour faire une api Json Mysql,



j'ai un fichier php

<?php
header("Access-Control-Allow-Origin: *");
header("Content-Type: application/json; charset=UTF-8");

$conn = new mysqli("localhost", "root", "", "isoffice");

$result = $conn->query("SELECT idJoueur,nomJoueur,mdpJoueur FROM joueur");

$outp = "[";
while($rs = $result->fetch_array(MYSQLI_ASSOC)) {
    if ($outp != "[") {$outp .= ",";}
    $outp .= '{"idJoueur":"'  . $rs["idJoueur"] . '",';
    $outp .= '"nomJoueur":"'   . $rs["nomJoueur"]        . '",';
    $outp .= '"mdpJoueur":"'. $rs["mdpJoueur"]     . '"}';
}
$outp .="]";

$conn->close();

echo($outp);
?>

un script dans superpowers :

var xmlhttp;
var loader;

va

function myF(arr) {
    var out = "";
    var i;
    for(i = 0; i < arr.length; i++) {
      Sup.log(arr[i].idJoueur + "\n");
      Sup.log(arr[i].nomJoueur + "\n");
      Sup.log(arr[i].mdpJoueur + "\n");
    }
}

function api(){     xmlhttp = new XMLHttpRequest();
  var url = "http://localhost/apiphp/index.php";
    xmlhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
        var myArr = JSON.parse(this.responseText);
        myF(myArr);
    }
  };
  xmlhttp.open("GET", url, true);
  xmlhttp.send();
}

Une base de donnée Mysql dans localhost qui s'appel "isoffice" avec la table "joueur" et comme colonne  : idJoueur  nomJoueur    mdpJoueur


En espérant vous avoir aider car j'ai beaucoup galéré à utiliser les éléments du DOM pour pouvoir utiliser une API. 
Merci W3schools

ben comme y'a pas de commentaires je comprend rien ;D

(1 edit) (+1)

Le code de Fiurino permet dans Superpowers d’appeller une Url. Celle-ci fais une requête dans la base de données et renvoie un tableau en json.

Sur le serveur php :

<?php
header("Access-Control-Allow-Origin: *");
header("Content-Type: application/json; charset=UTF-8");

# Connection à la BDD, requete puis déconnection
$conn = new mysqli("localhost", "root", "", "isoffice");
$result = $conn->query("SELECT idJoueur,nomJoueur,mdpJoueur FROM joueur");
$conn->close();

# Formatage de la requete 
$outp = "[";
while($rs = $result->fetch_array(MYSQLI_ASSOC)) {
    if ($outp != "[") {$outp .= ",";}
    $outp .= '{"idJoueur":"'  . $rs["idJoueur"] . '",';
    $outp .= '"nomJoueur":"'   . $rs["nomJoueur"]        . '",';
    $outp .= '"mdpJoueur":"'. $rs["mdpJoueur"]     . '"}';
}
$outp .="]";

# Renvoi du contenu formaté
echo($outp);
?>

Puis côté client, dans Superpowers

// permet d'exposer l'élément xmlhttp
var xmlhttp;

// fonction propre au code de Fiurino où le contenu de la requête est affiché dans les logs
function myF(arr) {
    for(let i = 0; i < arr.length; i++) {
      Sup.log(arr[i].idJoueur + "\n");
      Sup.log(arr[i].nomJoueur + "\n");
      Sup.log(arr[i].mdpJoueur + "\n");
    }
}

// Fonction qui fait l'appel au serveur
// En modifiant la fonction pour qu'elle return le contenu tu peux le récupérer en faisant
// let joueurs = getJoueurs();
function getJoueurs(){
  xmlhttp = new XMLHttpRequest(); 
  var url = "http://localhost/apiphp/index.php";
  xmlhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
        return JSON.parse(this.responseText);
    }
  };
  xmlhttp.open("GET", url, true);
  xmlhttp.send();
}

hoooo(ho de respect je précise ^^) 

merci, personnellement je suis un adepte des commentaires même dans mon propre code sinon je m'y retrouve pas.

ps: heureux de voir qu'il y a des "membres" actifs. 

Je n’avais pas touché a Superpowers depuis un bon moment mais récemment je l’ai reDL pour faire une idée de jeu.