를 표시합니다 :얻기 라벨은 내가 3 개 MySQL의 테이블이
내가 같은 테이블 형식으로 어떤 선반, 뭔가 어떤 책을 표시해야shelf
---------------
id
project_id
label
books
---------------
id
project_id
label
booksOnShelves
---------------
id
shelf_id
book_id
project_id
user_id
: 지금까지 내가했습니다
History Fiction
------- --------
book 1 book 4
book 2 book 5
book 3
에만이있어 : 어떤 이상한 이유로 선반 라벨
SELECT
shelf.label,
books.label
FROM booksOnShelves
LEFT JOIN shelf ON (shelf.id = booksOnShelves.shelf_id)
LEFT JOIN books ON (books.id = booksOnShelves.book_id)
WHERE booksOnShelves.project_id = ".$_POST['pid']."
AND booksOnShelves.user_id = ".$_POST['uid']."
몇 가지 사항을 보여주는 것이 아니라, 내가 쿼리, 난 다른 모든 부분을 제거하는 경우 Ike 책 레이블, 그것은 작동합니다. 또한 하나의 긴 열 (루프를 통해) 만 표시 할 수 있습니다. 어떻게 그것을 별도의 열람 칸으로 나눌 수 있습니까? 아니면 한 열에 만 책 한 권당 한 번만 선반 레이블을 표시하려면 어떻게합니까?
** 귀하의 코드는 SQL 삽입에 취약합니다 ** 매개 변수로 변수를 전달하는 [준비된 명령문] (http://stackoverflow.com/a/60496/623041)을 사용해야합니다. SQL에 대해 평가되지 않습니다. 내가 무슨 말을하는지, 어떻게 고쳐야할지 모르겠다면, [Bobby Tables] (http://stackoverflow.com/questions/332365/xkcd-sql-injection-please-explain)의 이야기를 읽으십시오. . – eggyal
'shelf.id'입니까, 아니면'shelf.label'의 오타입니까? – Neil
@Neil 잘 잡습니다. 단지 레이블이 필요합니다;) – santa