多维PHP数组保持为空

时间:2013-07-12 07:27:27

标签: php mysql multidimensional-array while-loop

我正在尝试在PHP函数中创建一个多维数组。但它似乎没有用。我写的功能:

//Get newsitems
function getNews() {
    $result = mysql_query("SELECT * FROM news WHERE archived='0' ORDER BY `id` DESC")
    or die(mysql_error());

    $array = array();

    while($row = mysql_fetch_array($result)) {

        $array[] =  array ( 'title' => $row['title'], 
                            'content' => $row['content'], 
                            'date' => $row['pagid'], 
                            'image' => $row['image'], 
                            'youtube' => $row['youtube']

    }

    return $array;
}

然后我试图通过这样做来获得一个数组:

$aNews = getNews();

当我打印这个数组时,没有显示任何内容。我究竟做错了什么?数据库查询不会返回任何错误。

1 个答案:

答案 0 :(得分:2)

您有语法错误,没有关闭括号并终止数组周围的行。

更改为:

    $array[] =  array ( 'title' => $row['title'], 
                        'content' => $row['content'], 
                        'date' => $row['pagid'], 
                        'image' => $row['image'], 
                        'youtube' => $row['youtube'] ); // <-- this

因此,您应该收到致命错误,白屏通常表示致命错误,但错误报告/显示已关闭。对于将来的调试,您可以查看错误日志或打开错误:

error_reporting(E_ALL);
ini_set('display_errors', '1');

附注:

  • 不推荐使用mysql_*库,请考虑升级到现代API,例如MySQLi或PDO。
  • 如果您必须使用此库,请至少更改为mysql_fetch_assoc(),因为您只对关联数组感兴趣。