Php 从数据库中提取数据时,数组_push()不在while循环中工作

Php 从数据库中提取数据时,数组_push()不在while循环中工作,php,sql,pdo,Php,Sql,Pdo,我有一个我以前从未经历过的问题。php数组_push在while循环中不起作用。当我使用while循环时,浏览器上不会打印任何内容,但当我在没有while循环的情况下获取数据时,它工作正常。我哪里会出错呢。我一直在挣扎,但它似乎不起作用 这是我的php代码: function getFeaturedCrops(){ require "config.inc.php"; try{ $query = $conn->prepare("SELECT * FRO

我有一个我以前从未经历过的问题。php数组_push在while循环中不起作用。当我使用while循环时,浏览器上不会打印任何内容,但当我在没有while循环的情况下获取数据时,它工作正常。我哪里会出错呢。我一直在挣扎,但它似乎不起作用

这是我的php代码:

function getFeaturedCrops(){
    require "config.inc.php";

    try{



        $query = $conn->prepare("SELECT * FROM crops WHERE category = ? "); 
        $query->bindValue(1, 1); 
        $query->execute(); 
        if($query->rowCount()){
            //echo "nice";

            $jsonArray = array();

            while($data = $query->fetch(PDO::FETCH_ASSOC)){
                // here we are loading either animals ar crops

                $type = $data['type'];
                $name = $data['name']; 
                $description = $data['description']; 
                $image = $data['image'];
                $id = $data['salt'];

                if(strlen($description) > 50){
                    $shortDescription = substr($description, 0, 50)."...";
                } else {
                    $shortDescription = $description; 
                }


                if(strlen($name) > 20){
                    $shortName = substr($name, 0, 20)."..."; 
                } else {
                    $shortName = $name;
                }

                if(strlen($type) > 20){
                    $shortType = substr($type, 0, 20)."...";
                } else {
                    $shortType = $type;
                }

                //echo "$shortDescription\n"; 

                array_push($jsonArray,
                    array(
                        "type" => $type, 
                        "shortType" => $shortType,
                        "name" => $name, 
                        "shortName" => $shortName, 
                        "description" => $description, 
                        "shortDescription" => $shortDescription, 
                        "image" => $image,
                        "id" => $id,
                        "success" => true
                        )
                    );

            }

        } else {

                array_push($jsonArray, array(
                        "type" => "default", 
                        "shortType" => "default",
                        "name" => "default", 
                        "shortName" => "default", 
                        "description" => "default", 
                        "shortDescription" => "default", 
                        "image" => "default",
                        "id" => "default", 
                        "success" => false
                    )
                ); 
        }

        //echo "well data";

        echo json_encode(array("Items" => $jsonArray)); 

    }  catch(Exception $e){
        die($e->getMessage());
    }
}
那么我是如何调用我的函数的:

getFeaturedCrops();

这是我的数据库截图

那么预期的输出和您现在拥有的是什么?我期待带有多个json对象的json数组很抱歉我编辑了这个问题,上面提供的代码没有在屏幕上打印任何内容,它提供了空白页那么为什么要在注释中编写此内容,嗯?空白页通常意味着错误,检查错误日志以了解错误的详细信息