2017-12-13 7 views
1

こんにちは、私は本当に奇妙なことにこだわりました。PHPメソッドは2次元配列を返すことはできません?

私は学校プロジェクトのための簡単なPHP MVC WebAppを書いています.2次元配列を返すことはできません。

私はこの方法この問題を解決:

class Post{ 
    public $author; 
    public $cat; 
    public $table; 
    function getPosts($cat = ""){ 
     dbstart(); 
     global $dbconn; 
     empty($cat) ? $query = mysqli_query($dbconn, "SELECT * FROM pytania") : $query = mysqli_query($dbconn, "SELECT * FROM pytania WHERE cat = $cat"); 
     while($row = mysqli_fetch_assoc($query)){ 
     $output[] = $row; 
     $this -> table = $output; 
     dbstop(); 
     } 
    }  

} 

それは私が

"poststable" => $post -> table 

コントローラにプロパティを呼んでいるとき、完全に動作してくれ、すべての4つのポスト(4行の2次元配列)を与えるが、 public $ tableプロパティを削除して、このようにメソッドを直接呼び出すことができます。

"poststable" => $post -> getPosts($cat) 

残念ながら、私はこれで私のメソッドのコードを変更する場合:

return $output; 

$データ「poststableは」(配列店に一つだけのポストを)私の最初のポストを与えます

誰もが私が間違ってやっているのアイデアを持っていますか?事前におかげで助けてください!

+0

ここで 'return $ output;'をあなたのコードに入れますか? – ArtOsi

+0

もちろん、私は入れたい:return $ output; $ this - > table = $ outputの代わりに。 – PaulMans

+0

あなたのループ内に '$ this - > table = $ output; 'を設定していると仮定すると、それを 'return $ output;'に変更しようとしていましたか、 '$ output'が完全にビルドされたときにループの後に戻りましたか? –

答えて

0

ループの間に出力全体をに構築する必要があります。その後、それを返すことができます。さらに、ループ外でDBをクリーンアップする必要があります。

関連する問題