2017-02-22 4 views
0

私は、次の表ていますので、私は、出力のメンバー、姓と名ができる取得リレーショナル表データ

member 
id, firstName, lastName 

team 
id, name 

teamMember 
id, teamId, memberId 

は、私は、リレーショナルテーブルにアクセスしようとしています:

$sql = "SELECT member.id, member.firstName, member.lastName, team.id, teamMember.id, teamMember.memberId, teamMember.teamId 
     FROM teamMember 
     JOIN member 
     JOIN team 
     ON teamMember.memberId = member.id 
     WHERE dashboardId = 1 AND team.id = 1"; 

私はハードを設定していますチーム1のメンバーを今すぐ返すようにテストすることができます。

ここでの最終目標は、IDで選択クエリに設定されたチームIDに関連付けられたメンバーの名前を返すためにリレーショナルテーブルにアクセスする必要があることです。

私は出力の必要性を得るために苦労しています。

そしてそうのような値を返します。

$result = $conn->query($sql); 

if ($result->num_rows > 0) { 
    while($row = $result->fetch_assoc()) { 
     echo "{$row['firstName']} {$row['lastName']}<br>"; 
    } 
} 

私は見ていますエラーは次のとおりです。を参照

Notice: Trying to get property of non-object in 

if ($result->num_rows > 0) {

私が見たいと思っ出力がメンバーでありますfirstNameおよびテーブル

+0

あなたは何を期待していると何が出力されているかをご記入ください。 –

+0

@ParantapParashar私はいくつかの情報を追加しました。 – PhpDude

+0

'$ result'にvarダンプを実行して、クエリが正しく出力されているかどうか確認してみましたか? – Option

答えて

1

おそらく、すべての結果または行が目的のチームIDに関連付けられている必要があります。しかし、INNER JOINを使うと、JOINの働きによって、1つのチームに対して1つの行しか得られません。これがうまくいく

SELECT member.id, member.firstName, member.lastName, team.id, teamMember.id, teamMember.memberId, teamMember.teamId 
     FROM teamMember 
     JOIN member 
     ON teamMember.memberId = member.id 
     WHERE dashboardId = 1 AND teamMember.teamId = 1" 

希望:

代わりに次のようなクエリを使用する必要があります。

しかし、bool(false)の時点で、クエリも壊れてしまい、結果が得られませんでした。 クエリでは、3つのテーブルを結合し、1つのみの条件を定義しました。これはあなたのクエリのようになります

"SELECT member.id, member.firstName, member.lastName, team.id, teamMember.id, teamMember.memberId, teamMember.teamId 
     FROM teamMember 
     JOIN member 
     ON teamMember.memberId = member.id 
     JOIN team 
     ON teamMember.teamId= team.id 
     WHERE dashboardId = 1 AND team.id = 1"; 
+0

これは問題を解決したようではありません。私はまだ$結果にbool(false)を返します – PhpDude

+0

これは、あなたがテーブルのどれにも 'dashboardId'を持っていないためです。それをクエリから削除する必要があります。 –

+0

私はテスト目的のために行った – PhpDude

関連する問題