Php SELECT查询在非null字段上返回null

Php SELECT查询在非null字段上返回null,php,mysql,sql-server,json,Php,Mysql,Sql Server,Json,我有一个php文件,它返回一个JSON数组,我将与javascript结合使用,用sql数据库中的新闻填充网站。 sql查询在服务器上工作并返回我想要的信息。当php文件返回以下内容时: [{"rubrik":null,"ingress":null,"datum":"2014-11-10 16:11:54},{"rubrik":null,"ingress":null,"datum":"2014-11-28 23:17:02"}] 日期是正确的。尽管rubrik和ingres字段中有一些文本并且

我有一个php文件,它返回一个JSON数组,我将与javascript结合使用,用sql数据库中的新闻填充网站。 sql查询在服务器上工作并返回我想要的信息。当php文件返回以下内容时:

[{"rubrik":null,"ingress":null,"datum":"2014-11-10 16:11:54},{"rubrik":null,"ingress":null,"datum":"2014-11-28 23:17:02"}]
日期是正确的。尽管rubrik和ingres字段中有一些文本并且不是空的。 数据库如下所示:

NAME    TYPE            COLLATION               NULL
rubrik  varchar(254)    latin1_swedish_ci       No
ingress text            latin1_swedish_ci       No
nyhet   text            latin1_swedish_ci       No
datum   timestamp                               No
现在不需要尼赫特

这就是我的php文件的样子

$result = mysqli_query($con, "SELECT rubrik, ingress, datum FROM svensta_news");

$return_arr = array();

while ($row = mysqli_fetch_array($result))
{
    $row_array['title']=$row['rubrik'];
    $row_array['ingress']=$row['ingress'];
    $row_array['date']=$row['datum'];

    array_push($return_arr, $row);
}

echo json_encode($return_arr);
我不明白这里有什么不对,为什么我的php在非null的字段上返回null

编辑:有关数据在数据库中的外观的信息

nyhetsId    rubrik          ingress         news        date
120         sometitle       Someingress     Null        2014-11-10 16:11:54
122         sometitle2      Someingress     Null        2014-11-28 23:17:02
不从while条件获取值,因为您声明$return\u arr=array

你应使用:

$return_arr['title']=$row['rubrik'];
$return_arr['ingress']=$row['ingress'];
$return_arr['date']=$row['datum'];
在while条件下获取值

使用MySQL COLLATE进行查询:


选择rubrik COLLATE latin1_swedish_ci作为rubrik,ingress COLLATE latin1_swedish_ci作为ingress,datum COLLATE latin1_swedish_ci作为svensta_news的数据

我没有测试它,但我认为这应该有效

$result = mysqli_query($con, "SELECT rubrik, ingress, datum FROM svensta_news");

$return_arr = array();

while ($row = mysqli_fetch_array($result))
{   
    $return_arr[] = array(
        'title' => $row['rubrik'],
        'ingress' => $row['ingress'],
        'date' => $row['datum'] 
    );
}

echo json_encode($return_arr);

将$row\u数组初始化为数组

也可以将代码更改为

array_push($return_arr, $row_array);

若数据库中phpmyadmin中设置为null的字段中的字段值为null/空,则返回null。检查null的条件。如果$row['rubrik']==空| |$row['rubrik']!={$row_数组['title']=$row['rubrik']];}其他{$row_数组['title']=}关于这一点有什么解决方案/解释吗?这将返回与以前相同的JSON,在实际不为null的字段上返回null。与foulty null值的问题相同,这也只返回DB中的一行。尝试添加rubrik不为null,入口不为null,数据不为null,我认为你的问题出在查询上。这样做的结果是一样的。
array_push($return_arr, $row_array);