2011-12-14 13 views
0

内部結合文を使用して、テーブルVenuesとUsersの両方からデータを取得しています。異なる配列の内部結合結果

$resultsFromQuery = array(

    $venueKey, 
    $userKey, 
    $venueKey... 

) 

どのように私はこれを達成できます。しかし、私は、配列がこの

$resultsFromVenueTableArray = array(

    $relevantVenueKey => $relevantVenueValue, 
    $resultsFromUserTable => $arrayOfValuesFromUserTable 

); 

ではなく、このような何かを探して取得したデータのすべてを完全に一つだけのアレイのように見えるがしたいですか?

ここに私のコードです。

$query = $this->db->query("SELECT * FROM Venues INNER JOIN Users ON Users.id = $userID", array($userID)); 

$venues = array(); 

foreach ($query->result() as $row) { 

    $row->username = $username; 
    $venues[] = $row; 

} 

答えて

1

それはあなたが何をしたいのですが、あなたがそうのように両方のテーブルから特定の列を引き出すことができ、まさに質問から明らかではない:

あなたが引き出すことができるでしょう
SELECT Venues.*, Users.username FROM Venues INNER JOIN Users ON... 

'Users'の 'username'列のみ。

ジョインは常に行の配列を残しています。もし何か必要があれば、私はあなたの質問を誤解していない限り、PHPでデータを取得しなければならないでしょう。このような

何かが配列のキーとしてユーザ名で、ユーザーがあなたにすべての会場になるだろう:

$venuesByUser = array(); 
foreach ($query->result() as $row) { 
    $venuesByUser[$row->username][] = $row; 
}