2014-10-06 41 views
1

我想完成从一个表到另一个MySQL连接,但它不工作。理想情况下,我希望能够使用预先准备好的语句(因为它更安全),但现在我只是试图使其正常工作。MySQL加入不工作

这里是我的数据库设置:

帖子:

id | title | text 

1 | Evening | Something here... 
2 | Trip away | Bets place to go... 

标签:

post_id | tag 
1  | weather 
1  | Autumn 
2  | Holidays 

这是我尝试迄今:

$tag = mysqli_real_escape_string($_GET['tag']); 
    $select = mysqli_query($mysqli, "SELECT posts.id, posts.title FROM posts INNER JOIN tags ON tags.tag = ".$tag); 

尽管如此,这并不工作。 我想要做的是选择所有已经搜索过相关标签的帖子,然后将其输出给用户。请帮助我真的坚持

编辑:While循环输出的数据

$select = mysqli_query($mysqli, "SELECT posts.id, posts.title FROM posts INNER JOIN tags ON tags.post_id = posts.id WHERE tags.tag = ".$tag); 

    while($row = mysqli_fetch_array($select)) { 

    echo print_r($row); 

    } 

回答

3

你的内部联接语法不正确

SELECT posts.id, posts.title 
FROM posts 
INNER JOIN tags ON tags.post_id = posts.id 
WHERE tags.tag = "some_tag_here" 

你需要两个表连接在一起,然后使用WHERE按标签过滤

+0

谢谢!这是让查询工作。我怎样才能使用while循环输出这个?我已经将我的尝试添加到了此问题的编辑中。 – Harry 2014-10-06 19:52:35

+0

@Harry我会使用'mysql_fetch_assoc($ select)'类似于[** THIS POST **](http://stackoverflow.com/questions/14456529/mysqli-fetch-array-while-loop-columns) – 2014-10-06 19:56:03

+0

谢谢为你的帮助约翰! – Harry 2014-10-06 20:02:32