2017-02-11 10 views
2

私はテーブルのすべての列を取って、それぞれの列のオブジェクトを取得したい。どのようにPHPの列のすべてのオブジェクトを取得できますか?

これは、これまでのところではなく、働く私のコードです:

public function TakeAll($name){ 

    $sql = 'SELECT * FROM Rap WHERE RapperName = :name'; 
    $query = $this -> conn -> prepare($sql); 
    $query -> execute(array(':name' => $name)); 

    $row_count = $query -> fetchColumn(); 

    for($i = 0; $i <= $row_count; $i++){ 

    $data = $query -> fetchObject(); 

     $user["rapper"] = $data -> RapperName; 
     $user["musicpath"] = $data -> MusicPath; 
     $user["musicname"] = $data -> MusicName; 
     return $user; 

    } 
} 

この方法ではただ一つのオブジェクトを取得しますが、私は私のテーブルにその名前を持つ3オブジェクトを持っていると私はすべてのこと3をフェッチします。

私は$data = $query -> fetchObject($i);を設定するが、その後もさえもその1つのオブジェクトが表示されない...

答えて

1

あなたは何度も何度も、アレイをオーバーライド停止する必要があります: -

public function TakeAll($name){ 

    $sql = 'SELECT * FROM Rap WHERE RapperName = :name'; 
    $query = $this->conn->prepare($sql); 
    $query->execute(array(':name' => $name)); 

    $row_count = $query->fetchColumn(); 
    $user = array(); // take array 
    $i = 0; // an increment variable 
    while($data = $query->fetchObject()){ 

     $user[$i]["rapper"] = $data->RapperName; 
     $user[$i]["musicpath"] = $data->MusicPath; 
     $user[$i]["musicname"] = $data->MusicName; 
     $i++; 
     // assign values to array with indexes of 0,1,2..... 
    } 
    return $user; // return final multi-dimensional array 
} 
+0

私はこれを取ります次のような別のクラスでは:$ all = $ db - > TakeAll($ name); $ response ["user"] = $ all; return json_encode($ response);これは正しいです ? – Erf

+0

@ user7415865私はあなたを得ていなかった –

+0

おいしかったですが、なぜそのループがすべてのデータ-1を返すのか分かりません。それは3オブジェクトを返す4つのオブジェクトを持っていた場合は...私は1nameと4columnを持っているが、それはちょうど3firstカラムを返すか、私は1nameで8columnを持っていれば7ofテーマを返す...私たちの挿入の最後の行を返しませんデータベース – Erf

関連する問題