PHP JSON MySQL

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : PHP JSON MySQL

Re: PHP JSON MySQL

par or 1 » 16 oct. 2020, 14:09

je n'ai rien modifié à ton code, si ce n'est rajouter des tabulations, ce qui ne change rien au résultat.

Re: PHP JSON MySQL

par 11inq » 16 oct. 2020, 13:47

il faut identé le code comme il faut, ce qui permet de bien comprendre à quel moment
header('Content-Type: application/json');
echo json_encode($posts, JSON_PRETTY_PRINT);
est exécuté.
à quel moment
$conn->close();
est exécuté
foreach ($json->users as $record) {
  $sql = "SELECT CONCAT(users.prenom, ' ', users.nom) as name FROM users WHERE identifiant = '$record->id'";
  $result = $conn->query($sql);
  if ($result->num_rows > 0) {
    $posts = array();
    $posts[] = array('status' => 'ok');
    while ($row = $result->fetch_assoc()) {
      $posts[] = array('user' => array('name' => $row['name']));
    }
    header('Content-Type: application/json');
    echo json_encode($posts, JSON_PRETTY_PRINT);
  } else {
    echo "pas d'utilisateur associé";
  }
  $conn->close();
}
Merci pour ton aide, je me permets de te corriger:
$conn->close(); il faut mettre à la toute fin après le dernier }

Mais j'obtiens plusieurs json dans ce cas
Merci beaucoup!

Re: PHP JSON MySQL

par or 1 » 16 oct. 2020, 13:40

il faut identé le code comme il faut, ce qui permet de bien comprendre à quel moment
header('Content-Type: application/json');
echo json_encode($posts, JSON_PRETTY_PRINT);
est exécuté.
à quel moment
$conn->close();
est exécuté
foreach ($json->users as $record) {
  $sql = "SELECT CONCAT(users.prenom, ' ', users.nom) as name FROM users WHERE identifiant = '$record->id'";
  $result = $conn->query($sql);
  if ($result->num_rows > 0) {
    $posts = array();
    $posts[] = array('status' => 'ok');
    while ($row = $result->fetch_assoc()) {
      $posts[] = array('user' => array('name' => $row['name']));
    }
    header('Content-Type: application/json');
    echo json_encode($posts, JSON_PRETTY_PRINT);
  } else {
    echo "pas d'utilisateur associé";
  }
  $conn->close();
}

PHP JSON MySQL

par 11inq » 16 oct. 2020, 13:29

Bonjour,
Quelqu'un pourrait m'expliquer mon erreur svp.

Ce que j'essaye de faire c'est en utilisant un json aller chercher le nom et le prénom de l'utilisateur dans la base de donné pour chaque utilisateur de la liste de json.
J'arrive à obtenir seulement pour le premier utilisateur de la liste

Voici mon code php:

Code : Tout sélectionner

<?php include "config.php"; $json = json_decode(' {"users":[ {"date": "29","id":"admin"}, {"date": "30","id":"user2"}, {"date": "30","id":"user3"} ]} '); foreach ($json->users as $record) { $sql = "SELECT CONCAT(users.prenom, ' ', users.nom) as name FROM users WHERE identifiant = '$record->id'"; $result = $conn->query($sql); if ($result->num_rows > 0) { $posts = array(); $posts[] = array('status' => 'ok'); while ($row = $result->fetch_assoc()) { $posts[] = array( 'user' => array( 'name' => $row['name'] ) ); } header('Content-Type: application/json'); echo json_encode($posts, JSON_PRETTY_PRINT); } else { echo "pas d'utilisateur associé"; } $conn->close(); }

et ce que j'obtiens:

Code : Tout sélectionner

[ { "status": "ok" }, { "user": { "name": "Victor Hugo" } } ]pas d'utilisateur associépas d'utilisateur associé
Merci d'avance!