当我从PHP函数中打印JSON时,它只从SQL中打印一行


When I am printing JSON from a PHP function it's printing only one row from SQL

我创建了一个函数来从SQL中提取数据并将其转换为JSON,但当我打印数据时,它只返回一行。

Db_functions.php

public function getfeeds(){
    $stmt = $this->con->prepare("select id,title,status,profilepic,created_at,url from news");
    $stmt->execute();
    $result = $stmt->get_result();
    $row = array();
    while ($r = $result->fetch_assoc()) {
       $row =$r;
       $nrow['news'] = array($row);
       $json = str_replace("''/", "/",json_encode($nrow,JSON_PRETTY_PRINT));
       echo'<pre>';
       return $json;
    }

feed.php

<?php
session_start();
require_once 'include/DB_Functions.php';
$db = new DB_Functions();
$feeds= $db->getfeeds();
print_r($feeds);
   ?>

输出
{
    "news": [
        {
            "id": 1,
            "title": "test",
            "status": "this is content",
            "profilepic": "0",
            "created_at": "2016-09-05 12:11:17",
            "url": "0"
        }
    ]
}

但是输出应该像这样有两行

{
    "news": [
        {
            "id": "1",
            "title": "test",
            "status": "this is content",
            "profilepic": "0",
            "created_at": "2016-09-05 12:11:17",
            "url": "0"
        }
    ]
}
{
    "news": [
        {
            "id": "2",
            "title": "JCECE",
            "status": "JCECE 2016 will be conducted on June 5, 2016 by JCECE Board, which is the exam conducting authority for the engineering entrance examination. JCECE 2016 will be conducted to offer admissions to undergraduate engineering courses at the participating institutes of JCECE 2016 in the state of Jharkhand. As of now, there are a total of 19 colleges (government+private) that will offer over 6000 B.E/B.Tech seats to aspiring candidates in Jharkhand. 'r'n'r'nApplication Dates:16 Apr 2016 to 16 May 2016'r'n'r'nAdmit Card Date:11 May 2015'r'n'r'nExam Dates:05 Jun 2016'r'n'r'nResult Date:01 Jul 2015 to 10 Jul 2015      ",
            "profilepic": "http://results.jharkhandeducation.net/JCECEB/JCECEB-Logo.jpg",
            "created_at": "2016-09-16 10:14:55",
            "url": "https://jcece.co.in/"
        }
    ]
}

在while循环中有一个返回值,因此它只返回结果集中的第一行。

public function getfeeds(){
    $stmt = $this->con->prepare("select id,title,status,profilepic,created_at,url from news");
    $stmt->execute();
    $result = $stmt->get_result();
    $nrow = array();
    while ($r = $result->fetch_assoc()) {
       $nrow[] = $r;
    }
    return json_encode($nrow);
}

像这样调用

<?php
session_start();
require_once 'include/DB_Functions.php';
$db = new DB_Functions();
$feeds= $db->getfeeds();
// its a string and not an array so print_r wont work
echo $feeds;  
?>