2014-10-28 3 views
0

"food", "member"및 "member_food"의 세 개의 테이블이 있습니다. 나는 "tag_food"에있는 데이터로 태그 컬렉션을 미리 채워 넣는 업데이트 사용자 페이지를 만들려고합니다.MySQL 및 관계형 테이블 JOIN 오류

쿼리하려는 항목을 선택할 수있는 이전 페이지에서 보내는 ID를 디버깅했습니다 (ID:4).

$query = "SELECT * FROM `food` left join `member_food` on food.entityid = member_food.food_id WHERE member_id = '$id'"; 
      //Breakfast 
      $breakfastresult1 = $mysqli->query($query); 

echo '<select name="breakfast1">'; 
     while($BreakfastData1 = mysqli_fetch_array($breakfastresult1, MYSQL_ASSOC)) 
     { 
      echo '<p><option value="' . htmlspecialchars($BreakfastData1['member_food.food_id']) . '">' 
       . htmlspecialchars($BreakfastData1['member_food.food_name']) 
       . '</option>' 
       . '</p>';   
     } 
echo '</select>'; 

그러나 선택 필드는 비어있는 것으로 보입니다. 내 leftjoin 테이블에서 올바른 값을 가져 오지 않는다고 생각합니다. enter image description here

음식 테이블 : 여기

내 member_food 테이블의 예입니다이

enter image description here

+3

'leftjoin' 공간하지만 빈 여전히 밖으로 => 'join' 왼쪽 –

+0

감사 @ 프레드-II-, 압둘 지적으로 그리고, 오타는 나쁜. –

+0

이'[ 'member_food.food_id']'와'[ 'member_food.food_name']'는'member_food.'를 포함하면 안됩니다 - 문제의 일부일 수 있습니다. –

답변

3

편집, 먼저 두 번째 당신이 필요로 (공간 + 왼쪽하여 가입 누락) 오타가 member_id가 속한 테이블을 알려주는 것

 $query = "SELECT * FROM `food` as f left join `member_food` as mf on f.entityid = mf.food_id WHERE mf.member_id = '$id'"; 
+0

* "왼쪽 + 조인 공간이 없습니다"* - OP가 수정했습니다. 질문을 다시로드하십시오. –

+0

나는 OP가 아니다. –

+0

좋아요. @ 프레드 나는 한 가지 더 대답합니다. 맞다고 생각하니? 우리는 이렇게 친구가 된 것 같습니다 : p –

2

당신은 이것을 이용하여 join cor 곧장.)

enter image description here

+0

안녕하세요 앤드류, 현재 사용 : http://www.sitepoint.com/understanding-sql-joins-mysql-database/ 지금 :) –