2

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();

この配列を印刷すると、何も表示されません。私は何を間違っていますか?データベース クエリはエラーを返しません。

4

1 に答える 1

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_*ライブラリは非推奨です。MySQLi や PDO などの最新の API にアップグレードすることを検討してください。
  • mysql_fetch_assoc()このライブラリを使用する必要がある場合は、連想配列のみに関心があるため、少なくとも に変更してください。
于 2013-07-12T07:35:52.083 に答える