我有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