Wie verwende ich die Funktion json_encode()
mit MySQL-Abfrageergebnissen? Muss ich die Zeilen durchlaufen oder kann ich sie einfach auf das gesamte Ergebnisobjekt anwenden?
$sth = mysqli_query("SELECT ...");
$rows = array();
while($r = mysqli_fetch_assoc($sth)) {
$rows[] = $r;
}
print json_encode($rows);
Die Funktion json_encode
benötigt PHP> = 5.2 und das php-json -Paket - wie hier hier
NOTE: mysql
ist seit PHP 5.5.0 veraltet, verwenden Sie stattdessen die Erweiterung mysqli
http://php.net/manual/de/migration55.deprecated.php .
Versuchen Sie dies, damit wird Ihr Objekt ordnungsgemäß erstellt
$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 sagt "mysql_query()
gibt eine Ressource zurück".
http://www.php.net/json_encode sagt, dass er jeden Wert "außer einer Ressource" kodieren kann.
Sie müssen die Datenbankergebnisse durchlaufen und in einem Array sammeln, dann json_encode
das Array.
Danke, das hat mir sehr geholfen. Mein Code:
$sqldata = mysql_query("SELECT * FROM `$table`");
$rows = array();
while($r = mysql_fetch_assoc($sqldata)) {
$rows[] = $r;
}
echo json_encode($rows);
Danke .. meine Antwort lautet:
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";
}
Das Obige wird meiner Erfahrung nach nicht funktionieren, bevor Sie das Wurzelelement Im Array auf etwas bezeichnen. Ich konnte vorher noch nichts auf den Final json zugreifen.
$sth = mysql_query("SELECT ...");
$rows = array();
while($r = mysql_fetch_assoc($sth)) {
$rows['root_name'] = $r;
}
print json_encode($rows);
Das sollte den Trick tun!
Par
Der folgende Code funktioniert hier gut!
<?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);
?>
Sorry, das ist extrem lange nach der Frage, aber:
$sql = 'SELECT CONCAT("[", GROUP_CONCAT(CONCAT("{username:'",username,"'"), CONCAT(",email:'",email),"'}")), "]")
AS json
FROM users;'
$msl = mysql_query($sql)
print($msl["json"]);
Einfach im Grunde:
"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
Meine einfache Lösung, um zu verhindern, dass numerische Werte mit Sprachmarken versehen werden ...
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, um ein Array zu erstellen, andernfalls wird der letzte Wert in der while-Schleife angegeben
diese Arbeit wie append Methode von StringBuilder in Java
wir könnten Paolo Bergantino so beantworten
$sth = mysql_query("SELECT ...");
print json_encode(mysql_fetch_assoc($sth));
So erstellen Sie JSON mit Daten aus der MySQL-Datenbank
JSON (JavaScript Object Notation) wird heutzutage gegenüber XML mehr bevorzugt, da es für den Datenaustausch auf verschiedenen Plattformen leicht, lesbar und einfach zu verwalten ist. Wir werden sehen, wie JSON-Daten aus der Employee-Tabelle erstellt werden können, die in der MySQL-Datenbank gespeichert ist.
echo json_encode($data);
Live: [Beispiel ]
Zum Beispiel $ Result = mysql_query ("SELECT * FROM-Benutzerprofile wobei NAME = 'TESTUSER'"));
1.) Wenn $ result nur eine Zeile ist.
$response = mysql_fetch_array($result);
echo json_encode($response);
2.) Wenn $ result mehr als eine Zeile ist. Sie müssen die Zeilen durchlaufen und in einem Array speichern und einen Json mit Array zurückgeben.
$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);
Ich habe das so gelöst
$stmt->bind_result($cde,$v_off,$em_nm,$q_id,$v_m);
$list=array();
$i=0;
while ($cresult=$stmt->fetch()){
$list[$i][0]=$cde;
$list[$i][1]=$v_off;
$list[$i][2]=$em_nm;
$list[$i][3]=$q_id;
$list[$i][4]=$v_m;
$i=$i+1;
}
echo json_encode($list);
obj = JSON.parse(dataX);
Ich habe die gleiche Anforderung. Ich möchte nur ein Ergebnisobjekt im JSON-Format drucken, daher verwende ich den folgenden Code. Ich hoffe du findest etwas drin.
// 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";
}
Eine weitere Option mit FOR-Schleife:
$sth = mysql_query("SELECT ...");
for($rows = array(); $row = mysql_fetch_assoc($sth); $rows[] = $row);
print json_encode($rows);
Der einzige Nachteil ist, dass die Schleife langsamer ist als z. während oder vor allem für
$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);
so einfach ist das :-)
Überprüfen Sie den Code unten, um mysql_fetch und json_encode zu verwenden. Sie müssen die Zeilen durchlaufen, aber wenn Sie mysqli verwenden, ändert sich die Situation
$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 :)