带数组的mysql语法可能需要连接?

时间:2012-06-21 14:13:58

标签: php mysql json join pdo

我还是相当陌生的mysql,并希望寻求帮助。

用户表

idusers      name           other_info
1           Test Last          email
2           True Blue          phone
3           False Name         phone
4           Purpose Test       email

喜欢表格

id          idusers         iditems
1             1                3
2             1                4
3             1                4
4             2                3
5             3                3 
6             2                1   

目前我在mysql中设置了这个表,并且idusers应该在我的语法中匹配,以获取有关那些喜欢这些特定项目的特定用户的信息。

我目前有类似的东西

$liked_users = $dbh->query("SELECT users.idusers,likes.idusers FROM users,likes WHERE users.idusers = likes.idusers");

这应该匹配正确吗?

但我正在尝试输出一些JSON数组,其中用户的这些数据应该属于某些iditems

    while($row = $items-> fetch(PDO::FETCH_ASSOC)){
        //$get_liked_idusers = $liked_idusers->fetchAll(PDO::FETCH_ASSOC);
        //$liked_users ->execute(array($get_liked_idusers));

    $json['data'][] = array(
    'id'=>$row['iditems'],
    "likes" => array(
    "data"=>$liked_users -> fetchAll(PDO::FETCH_ASSOC) //users should be displayed only if they liked the item that is going through this while loop only.
    )
    );
}

所以我试图在"data"数组中输出有关用户的信息,它应该遵循iditems。而且我不确定如何这样做,因为我不认为在我的第一个AND iditems = ?" mysql语法中添加“$liked_users将会起到要求获得两个不同表格的作用。”

我希望我的问题很清楚?

提前致谢!

1 个答案:

答案 0 :(得分:1)

你可以做这样的事情

$liked_users = $dbh->query("SELECT users.idusers,likes.idusers,likes.iditems FROM users,likes WHERE users.idusers = likes.idusers")

因为您的查询应该包含您希望循环遍历json数据的许多字段