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");

これは正しく一致するはずですか?

しかし、私はユーザーのこのデータが特定のiditemsに分類されるJSON配列を出力しようとしています

    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構文内に「」を追加しても、2つの異なるテーブルを取得するように要求されるとは思わないため、どのように行うかはわかりません。

私の質問が明確であることを願っていますか?

前もって感謝します!

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 に答える