IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Interface Api


Sujet :

PHP & Base de données

  1. #1
    Candidat au Club
    Femme Profil pro
    Formation Code.bzh
    Inscrit en
    Septembre 2019
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Formation Code.bzh

    Informations forums :
    Inscription : Septembre 2019
    Messages : 6
    Points : 3
    Points
    3
    Par défaut Interface Api
    Bonjour, je viens demander de l'aide, j'ai fait une API en PHP et avec MYSQL avec XAMPP en localhost.

    Mon API marche très bien, le souci c'est que je dois aussi faire une interface, seulement dès que je fais une page php avec un include de mon résultat en tableau json,
    tout mon codage apparaît, alors j'ai cherché à prendre un élément par un élément, mais je n'y arrive pas. Je ne sais pas comment faire, je suis bloquée et extrêmement stressée.

    voici le code d'une de mes pages:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    <?php
     
    // required header
    header("Access-Control-Allow-Origin: *");
    header("Content-Type: application/json; charset=UTF-8");
     
    // include database and object files
    include_once '../config/database.php';
    include_once '../objects/fournisseur.php';
     
    // instantiate database and fournisseur object
    $database = new Database();
    $db = $database->getConnection();
     
    // initialize object
    $fournisseur = new Fournisseur($db);
     
    // query fournisseurs
    $stmt = $fournisseur->read();
    $num = $stmt->rowCount();
     
    // check if more than 0 record found
    if($num>0){
     
        // fournisseurs array
        $fournisseurs_arr=array();
        $fournisseurs_arr["Enregistrements"]=array();
        // retrieve our table contents
        while ($row = $stmt->fetch(PDO::FETCH_ASSOC)){
            // extract row
            // this will make $row['name'] to
            // just $name only
            extract($row);
     
            $fournisseur_item=array(
                "Identifiant du Fournisseur" => $idFournisseur,
                "Nom du fournisseur" => $nomFournisseur,
                "Adresse du fournisseur"=>$adresseFournisseur,
            );
     
            array_push($fournisseurs_arr["Enregistrements"], $fournisseur_item);
     
        }
     
        // set response code - 200 OK
        http_response_code(200);
     
        // show fournisseurs data in json format
        //echo json_encode($fournisseurs_arr);
    }
    else{
     
        // set response code - 404 Not found
        http_response_code(404);
     
        // tell the user no fournisseur found
        echo json_encode(
            array("message" => "Il n'y a pas de fournisseur trouvé")
        );
     
     
    }
    ?>
    Je vous remercie pour toute aide.

    Je tiens à expliquer que je fais partie d'une formation dont la durée n'a été que de 6 mois et que la je suis lâchée seule dans la nature sans trop d'aide,
    il n'est pas vraiment facile de contacter les intervenants. Je suis totalement débutante en la matière,
    mais je fais ce que je peux pour progresser, donc s'il vous plait, ne m'en voulez pas trop pour mon manque de connaissances.

  2. #2
    Candidat au Club
    Femme Profil pro
    Formation Code.bzh
    Inscrit en
    Septembre 2019
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Formation Code.bzh

    Informations forums :
    Inscription : Septembre 2019
    Messages : 6
    Points : 3
    Points
    3
    Par défaut Je rajoute
    J'ai tenté de faire quelque chose comme ça sur une autre page pour faire le lien, mais y'a un truc qui bloque, je ne dois pas être loin de la réponse.
    Je ne dois pas sélectionner le bonne éléments ou ma configuration est mauvaise.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <link rel="stylesheet" media="screen" type="text/css" href="../css/style.css"/>
     
        <title>Fournisseurs</title>
        <h2>Voici l'ensemble des fournisseurs</h2>
    </head>
    <body>
    <?php
        $json=file_get_contents("http://localhost/apiFacture/fournisseur/read.php");
        $data =  json_decode($json);
     
        if (count($data->fournisseurs_arr)) {
            // Open the table
            echo "<table>";
     
            // Cycle through the array
            foreach ($data->fournisseurs_arr as $idx => $fournisseurs_arr) {
     
                // Output a row
                echo "<tr>";
                echo "<td>$fournisseurs_arr->idFournisseur</td>";
                echo "<td>$fournisseurs_arr->nomFournisseur</td>";
                echo "<td>$fournisseurs_arr->adresseFournisseur</td>";
                echo "</tr>";
            }
     
            // Close the table
            echo "</table>";
        }
    ?>
    <a href="http://127.0.0.1/apiFacture/accueil.php"><input class="favorite styled"
           type="button"
           value="retourner à l'accueil"></a>
     
    </body>
    </html>

  3. #3
    Membre chevronné

    Homme Profil pro
    développeur
    Inscrit en
    Octobre 2013
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : développeur

    Informations forums :
    Inscription : Octobre 2013
    Messages : 1 576
    Points : 1 989
    Points
    1 989
    Par défaut
    Salut,

    Pourquoi ne pas avoir utilisé un framework? (Tu as juste réinventé la roue à mon avis)
    Quand tu dis interface tu veux dire une interface graphique? Il-y a swagger https://github.com/zircote/swagger-php
    Sinon pour ton problème, tu dois indiquer que tu récupères du json
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    header('Content-Type: application/json');
    au début de ton code. Tu peux utiliser les tampons https://julien-pauli.developpez.com/tutoriels/php/ob/
    Que donne un var_dump de ton json?

  4. #4
    Candidat au Club
    Femme Profil pro
    Formation Code.bzh
    Inscrit en
    Septembre 2019
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Formation Code.bzh

    Informations forums :
    Inscription : Septembre 2019
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    quand je rajoute header('Content-Type: application/json'); dans mon fichier, ça affiche mon codage sur ma page :'

    sinon je ne comprend pas le "reinvente la roue", je cherche juste à faire une interface graphique en plus sur mon Api, pour mon examen, je ne suis pas dans l'idée que j'invente un truc nouveau, je suis juste bloquée et je cherche de l'aide
    Je ne me sert pas de framework, car je voulais faire en php et que c'est le codage sur lequel je me sens le plus à l'aise, je répète, je suis débutante .
    je met le screen après avoir ajouter le code header que tu m'as dis d'ajouter dans mon code.

    Nom : 1.png
Affichages : 257
Taille : 163,5 Ko

  5. #5
    Candidat au Club
    Femme Profil pro
    Formation Code.bzh
    Inscrit en
    Septembre 2019
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Formation Code.bzh

    Informations forums :
    Inscription : Septembre 2019
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    Finalement j'ai trouvé:

    pour le Read.php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    <?php
     
    // required header
    header("Access-Control-Allow-Origin: *");
    header("Content-Type: application/json; charset=UTF-8");
     
    // include database and object files
    include_once '../config/database.php';
    include_once '../objects/fournisseur.php';
     
    // instantiate database and fournisseur object
    $database = new Database();
    $db = $database->getConnection();
     
    // initialize object
    $fournisseur = new Fournisseur($db);
     
    // query fournisseurs
    $stmt = $fournisseur->read();
    $num = $stmt->rowCount();
     
    // check if more than 0 record found
    if($num>0){
     
        // fournisseurs array
        $fournisseurs_arr=array();
        $fournisseurs_arr["Enregistrements"]=array();
        // retrieve our table contents
        while ($row = $stmt->fetch(PDO::FETCH_ASSOC)){
            // extract row
            // this will make $row['name'] to
            // just $name only
            extract($row);
     
            $fournisseur_item=array(
                "identifiant" => $idFournisseur,
                "Fournisseur" => $nomFournisseur,
                "Adresse"=>$adresseFournisseur,
            );
     
            array_push($fournisseurs_arr["Enregistrements"], $fournisseur_item);
     
        }
     
        // set response code - 200 OK
        http_response_code(200);
     
        // show fournisseurs data in json format
        echo json_encode($fournisseurs_arr);
    }
    else{
     
        // set response code - 404 Not found
        http_response_code(404);
     
        // tell the user no fournisseur found
        echo json_encode(
            array("message" => "Il n'y a pas de fournisseur trouvé")
        );
     
     
    }
    ?>
    pour le affichageFournisseur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <link rel="stylesheet" media="screen" type="text/css" href="../css/style.css"/>
        <title>Fournisseurs</title>
        <h2>Voici l'ensemble des fournisseurs</h2>
    </head>
    <body>
    <?php
     
        $json=file_get_contents("http://localhost/apiFacture/Fournisseur/read.php");
        $data =  json_decode($json);
     
        if (count($data->Enregistrements)) {
            // Open the table
            echo "<table>";
     
            // Cycle through the array
            foreach ($data->Enregistrements as $idx => $Enregistrements) {
     
                // Output a row
                echo "<tr>";
                echo "<td>$Enregistrements->identifiant</td>";
                echo "<td>$Enregistrements->Fournisseur</td>";
                echo "<td>$Enregistrements->Adresse</td>";
                echo "</tr>";
            }
     
            // Close the table
            echo "</table>";
        }
    ?>
    <a href="http://127.0.0.1/apiFacture/accueil.php"><input class="favorite styled"
           type="button"
           value="retourner à l'accueil"></a>
     
    </body>
    </html>
    Je suis trop contente, je vais pouvoir styliser maintenant!
    et ça donne ça:Nom : 1.png
Affichages : 212
Taille : 164,3 Ko

Discussions similaires

  1. Réponses: 1
    Dernier message: 03/03/2009, 12h09
  2. API VS INTERFACE
    Par Mr-Mobou dans le forum API standards et tierces
    Réponses: 3
    Dernier message: 15/04/2008, 21h48
  3. API pour interface de requête en drag&drop
    Par sroux dans le forum AWT/Swing
    Réponses: 7
    Dernier message: 19/03/2007, 12h34
  4. Recherche API pour faire des interfaces ASCII (Style DOS ou Linux)
    Par sekiryou dans le forum API standards et tierces
    Réponses: 4
    Dernier message: 18/08/2006, 01h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo