我有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']."
夫婦的事情......對於一些奇怪的原因,貨架標籤沒有顯示出來,但如果我刪除所有其他部分查詢,L艾克書標籤,它的作品。另外,我只能在一個長列中顯示(通過循環)。我如何將它分解成單獨的庫侖,或者如果在一列中,每組書籍只能顯示一次貨架標籤?
**你的代碼很容易受到SQL注入**你真的*應該使用[prepared statements](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
@尼爾良好的捕獲。只需要標籤;) – santa