7
votes

Retour JSON de MySQL avec nom de colonne

J'utilise php pour aller chercher une ligne de MySQL, puis l'encoder dans JSON en utilisant le code suivant

[{
  "user":"shekhar",
  "name":"Shekhar Chatterjee",
  "url":"https://graph.facebook.com/1254850974526564/picture",
  "stat":"0"
 },{
  "user":"shekhar",
  "name":"Shekhar Chatterjee",
  "url":"https://graph.facebook.com/1254850974526564/picture",
  "stat":"0"
}]


4 commentaires

Cela doit-il être dans ce format ou pouvez-vous la première ligne juste un tableau de noms de colonne? Si votre première ligne est la colonne, vous ne répétez pas les données et que vous obtenez toujours les valeurs.


Utilisez mysqli_fetch_assoc au lieu de mysqli_fetch_row


manuel PHP MySQLI lorsque tout le reste échoue, vous pouvez essayer de lire ça


@bassxzero mauvaise idée. Cela permettrait simplement de repousser l'exigence sur le récepteur du JSON de maintenir l'association d'un champs de la valeur de chaque du tableau des résultats. Si vous concevez des API, mettez son utilisation pratique, pratique et ne pas injecter des principes / constructions non fondus dans la sémantique.


5 Réponses :


4
votes

Vous devriez essayer alors que ($ rang = mysqli_fetch_assoc ($ résultat)) .

Il devrait renvoyer le résultat avec les noms de terrain respectifs.

Vous pouvez trouver la page manuelle ici .


1 commentaires

Je suis content de pouvoir être une aide là-bas: 3 Bonne journée.



2
votes

Vous devez utiliser mysqli_fetch_assoc ici à la place afin qu'il revienne la clé que les noms de colonne. mysqli_fetch_row renvoie à la place des touches numériques de tableau.

Essayez ceci: xxx


0 commentaires

7
votes

Utiliser mysqli_fetch_assoc ()

ici Vous allez xxx


0 commentaires

1
votes

Juste une note, vous n'avez pas besoin d'effectuer un addSlashes () supplémentaire () code>, vous pouvez ajouter json_unescaped_slashes code> comme deuxième argument de JSON_ENCODE () .

echo json_encode($jsonData, JSON_UNESCAPED_SLASHES);


2 commentaires

Cela ne traite pas vraiment de la question et serait probablement mieux comme un commentaire.


D'accord, toutefois avec la capacité de commentaire limitée de mobile, je suis incapable d'obtenir une mise en forme correcte des blocs de code.



0
votes

Juste donc si quelqu'un d'autre se heurte à cela en 2018, voici l'exemple complet.

<?php

header("Content-Type: application/json; charset=UTF-8");

$conn = new mysqli("host", "user", "password", "db_name");
$result = $conn->query("SELECT * FROM my_table");
$jsonData = array();
if(mysqli_num_rows($result) > 0){
while ($array = mysqli_fetch_assoc($result)) {
    $jsonData[] = $array;
}
$json = '{"my_data":';
$json .= json_encode($jsonData);
$json .= '}';
echo stripslashes($json);
}

?>


0 commentaires