Comment utiliser la fonction json_encode()
avec les résultats de la requête MySQL? Dois-je parcourir les lignes ou puis-je simplement l'appliquer à l'objet de résultats entier?
$sth = mysqli_query("SELECT ...");
$rows = array();
while($r = mysqli_fetch_assoc($sth)) {
$rows[] = $r;
}
print json_encode($rows);
La fonction json_encode
nécessite PHP> = 5.2 et le paquetage php-json - comme mentionné ici
NOTE: mysql
est obsolète à partir de PHP 5.5.0, utilisez plutôt l'extension mysqli
_ http://php.net/manual/en/migration55.deprecated.php .
Essayez ceci, cela créera votre objet correctement
$result = mysql_query("SELECT ...");
$rows = array();
while($r = mysql_fetch_assoc($result)) {
$rows['object_name'][] = $r;
}
print json_encode($rows);
http://www.php.net/mysql_query dit "mysql_query()
renvoie une ressource".
http://www.php.net/json_encode indique qu'il peut encoder n'importe quelle valeur "à l'exception d'une ressource".
Vous devez parcourir et collecter les résultats de la base de données dans un tableau, puis json_encode
le tableau.
Merci cela m'a beaucoup aidé. Mon code:
$sqldata = mysql_query("SELECT * FROM `$table`");
$rows = array();
while($r = mysql_fetch_assoc($sqldata)) {
$rows[] = $r;
}
echo json_encode($rows);
Merci .. ma réponse va:
if ($result->num_rows > 0) {
# code...
$arr = [];
$inc = 0;
while ($row = $result->fetch_assoc()) {
# code...
$jsonArrayObject = (array('lat' => $row["lat"], 'lon' => $row["lon"], 'addr' => $row["address"]));
$arr[$inc] = $jsonArrayObject;
$inc++;
}
$json_array = json_encode($arr);
echo $json_array;
}
else{
echo "0 results";
}
Ce qui précède ne fonctionnera pas, selon mon expérience, avant que vous nommiez l'élément racine .__ dans le tableau en quelque chose, je n'ai pas pu accéder à quoi que ce soit dans le fichier final
$sth = mysql_query("SELECT ...");
$rows = array();
while($r = mysql_fetch_assoc($sth)) {
$rows['root_name'] = $r;
}
print json_encode($rows);
Cela devrait faire l'affaire!
Par
Le code ci-dessous fonctionne bien ici!
<?php
$con=mysqli_connect("localhost",$username,$password,databaseName);
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$query = "the query here";
$result = mysqli_query($con,$query);
$rows = array();
while($r = mysqli_fetch_array($result)) {
$rows[] = $r;
}
echo json_encode($rows);
mysqli_close($con);
?>
Désolé, cela fait très longtemps après la question, mais:
$sql = 'SELECT CONCAT("[", GROUP_CONCAT(CONCAT("{username:'",username,"'"), CONCAT(",email:'",email),"'}")), "]")
AS json
FROM users;'
$msl = mysql_query($sql)
print($msl["json"]);
Juste fondamentalement:
"SELECT" Select the rows
"CONCAT" Returns the string that results from concatenating (joining) all the arguments
"GROUP_CONCAT" Returns a string with concatenated non-NULL value from a group
Ma solution simple pour arrêter de mettre des marques de langage autour des valeurs numériques ...
while($r = mysql_fetch_assoc($rs)){
while($Elm=each($r))
{
if(is_numeric($r[$Elm["key"]])){
$r[$Elm["key"]]=intval($r[$Elm["key"]]);
}
}
$rows[] = $r;
}
<?php
define('Host','localhost');
define('USER','root');
define('PASS','');
define('DB','dishant');
$con = mysqli_connect(Host,USER,PASS,DB);
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$sql = "select * from demo ";
$sth = mysqli_query($con,$sql);
$rows = array();
while($r = mysqli_fetch_array($sth,MYSQL_ASSOC)) {
$row_array['id'] = $r;
**array_Push($rows,$row_array);**
}
echo json_encode($rows);
mysqli_close($con);
?>
aarray_Push ($ row, $ row_array); help pour construire un tableau sinon il donne la dernière valeur de la boucle while
ce travail comme append méthode de StringBuilder in Java
nous pourrions simplifier Paolo Bergantino répondre comme ça
$sth = mysql_query("SELECT ...");
print json_encode(mysql_fetch_assoc($sth));
Comment créer JSON en utilisant les données de la base de données MySQL
JSON (JavaScript Object Notation) est davantage préféré de nos jours au XML, car il est léger, lisible et facile à gérer pour l’échange de données sur différentes plateformes. Nous verrons comment les données JSON peuvent être créées à partir de la table des employés stockée dans la base de données MySQL.
echo json_encode($data);
Live: [Exemple ]
Par exemple $ Result = mysql_query ("SELECT * FROM userprofiles où NAME = 'TESTUSER'");
1.) si $ result est seulement une ligne.
$response = mysql_fetch_array($result);
echo json_encode($response);
2.) si $ result est plus d'une ligne. Vous devez itérer les lignes, les enregistrer dans un tableau et renvoyer un JSON contenant un tableau.
$rows = array();
if (mysql_num_rows($result) > 0) {
while($r = mysql_fetch_assoc($result)) {
$id = $r["USERID"]; //a column name (ex.ID) used to get a value of the single row at at time
$rows[$id] = $r; //save the fetched row and add it to the array.
}
}
echo json_encode($rows);
J'ai la même exigence. Je veux juste imprimer un objet de résultat au format JSON afin d'utiliser le code ci-dessous. J'espère que vous y trouverez quelque chose.
// Code of Conversion
$query = "SELECT * FROM products;";
$result = mysqli_query($conn , $query);
if ($result) {
echo "</br>"."Results Found";
// Conversion of result object into JSON format
$rows = array();
while($temp = mysqli_fetch_assoc($result)) {
$rows[] = $temp;
}
echo "</br>" . json_encode($rows);
} else {
echo "No Results Found";
}
Une option supplémentaire utilisant la boucle FOR:
$sth = mysql_query("SELECT ...");
for($rows = array(); $row = mysql_fetch_assoc($sth); $rows[] = $row);
print json_encode($rows);
Le seul inconvénient est que la boucle est plus lente que par exemple. pendant ou surtout pour chaque
$array = array();
$subArray=array();
$sql_results = mysql_query('SELECT * FROM `location`');
while($row = mysql_fetch_array($sql_results))
{
$subArray[location_id]=$row['location']; //location_id is key and $row['location'] is value which come fron database.
$subArray[x]=$row['x'];
$subArray[y]=$row['y'];
$array[] = $subArray ;
}
echo'{"ProductsData":'.json_encode($array).'}';
$rows = json_decode($mysql_result,true);
aussi simple que cela :-)
Vérifiez le code ci-dessous pour utiliser mysql_fetch et json_encode. Vous devrez parcourir les lignes, mais si vous utilisez mysqli, la situation changera.
$kt_query="SELECT * FROM tbl_xxx";
$kt_result = mysql_query($kt_query) or die('Query failed: ' . mysql_error());
$rows= array();
while($sonuc=mysql_fetch_assoc($kt_result))
{
$rows[]=$sonuc;
}
print json_encode($rows);
Code:
$rows = array();
while($r = mysqli_fetch_array($result,MYSQL_ASSOC)) {
$row_array['result'] = $r;
array_Push($rows,$row_array); // here we Push every iteration to an array otherwise you will get only last iteration value
}
echo json_encode($rows);
$sql = "SELECT JSON_ARRAYAGG(JSON_OBJECT('id', tbl.id)) FROM table tbl WHERE... ";
//And get first row :)