0

我对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 = ?"在我的第一个$liked_usersmysql 语法中添加 " 不会像它要求获得两个不同的表一样起作用。

我希望我的问题很清楚?

提前致谢!

4

1 回答 1

1

你可以做这样的事情

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

因为你的查询应该有那么多你想要循环通过你的 json 数据的字段

于 2012-06-21T14:20:31.497 回答