J’essaie de créer une réponse JSON à partir de mon serveur, mais cela ne fonctionne pas comme prévu.
C’est probablement quelque chose de simple mais, je ne suis pas si bon en PHP …
La réponse attendue de base est un JSON avec un seul JsonArray et quelques autres champs. Pour cela, le morceau de code correspondant est affiché ici:
Exemple de réponse JSON attendue:
{ "pageNr": 2 "totalPages":28 "products":[ { "user_name":"testUser001", "product_ID":"4756373abdhg" }, { "user_name":"testUser002", "product_ID":"475ggdfghghg" }, { "user_name":"testUser003", "product_ID":"47466gdgbdhg" }, { "user_name":"testUser004", "product_ID":"4000nfaergeb" }, { "user_name":"testUser005", "product_ID":"adfer73abdhg" } ] }
Code PHP de base utilisé pour générer le JSON souhaité (parmi les requêtes SQL et autres):
$res = array(); $res2 = array(); while($r = mysqli_fetch_assoc($query2)) { $res["user_name"] = $r["user_name"]; $res["product_ID"] = $r["prod_ID"]; array_push($res2,$res); } $response = ['pageNr' => $page]; $response = ['totalPages' => $totalPages]; $response = ['products' => $res2];
Réponse que ce code génère sur Postman:
{ "products":[ { "user_name":"testUser001", "product_ID":"4756373abdhg" }, { "user_name":"testUser002", "product_ID":"475ggdfghghg" }, { "user_name":"testUser003", "product_ID":"47466gdgbdhg" }, { "user_name":"testUser004", "product_ID":"4000nfaergeb" }, { "user_name":"testUser005", "product_ID":"adfer73abdhg" } ] }
Donc, pour une raison quelconque, la réponse JSON n’accepte pas plus de champs pageNr
et totalPages
.
Qu’est-ce qui ne va pas ici?
Chaque affectation remplace votre tableau. Vous devez le mettre à jour à la place:
$res = array(); $res2 = array(); while($r = mysqli_fetch_assoc($query2)) { $res["user_name"] = $r["user_name"]; $res["product_ID"] = $r["prod_ID"]; array_push($res2,$res); } $response = []; $response['pageNr'] = $page; $response['totalPages'] = $totalPages; $response['products'] = $res2;
Essayer;
$res = array(); $res2 = array(); while($r = mysqli_fetch_assoc($query2)) { $res["user_name"] = $r["user_name"]; $res["product_ID"] = $r["prod_ID"]; array_push($res2,$res); } $response .= ['pageNr' => $page]; $response .= ['totalPages' => $totalPages]; $response .= ['products' => $res2];