我正在尝试将表中的所有行编码为JSON,但似乎错过了第一行。
$sql = "SELECT * FROM NewsStream";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
echo "echo: " . $row["id"]. " " . $row["title"]. " " . $row["content"]. "<br />";
echo "JSON: " . json_encode($row). "<br />";
}
}
结果是:
echo: 0 title content
JSON:
echo: 1 abc efg
JSON: {"id":"1","title":"abc","content":"efg","type":"11","author":"12","preview":"13","src":"14","date":"2015-02-20"}
echo: 2 4563 456465
JSON: {"id":"2","title":"4563","content":"456465","type":"54","author":"5463","preview":"6454","src":"456","date":"2015-02-12"}
为什么第一个“JSON:”缺失而回显结果是对的?
答案 0 :(得分:0)
试试这个
$return_arr = array();
$fetch = mysql_query("SELECT * FROM NewsStream");
while ($row = mysql_fetch_assoc($fetch)) {
$data=array();
foreach ($row as $key => $value) {
$data[$key]=$value;
}
$return_arr[] = $data;
}
echo json_encode($return_arr);
答案 1 :(得分:0)
试试这个:
$sql = "SELECT * FROM NewsStream";
$rows = array();
while($r = mysqli_fetch_assoc($sql)) {
$rows[] = $r;
}
print json_encode($rows)