0

確かに、MySQLクエリやJSONについてはよくわかりませんが、知りたいと思います。現在、データベースからデータを取得するときに、あるテーブルにクエリを実行して、別のクエリに値を取得します。これは、表示する必要のあるすべてのデータを受信するためのベストプラクティスではないと思います。以下は、私のMySQLクエリが現在PHPforeach関数でどのように機能するかの例です。 ここに画像の説明を入力してください

それで、私が望むクエリを完了するためのより良い方法はありますか、そしてそれをJSONとしてどのようにエンコードすることができますか?

どんな助けでもありがたいです、ありがとう。

4

2 に答える 2

1

私が理解していることから、あなたのコードは次のようなことをしています。

<?php
$friends = query("SELECT Friends");
while($row = fetch_object($friends)){
    $friend_dets = query("SELECT Friend_dets WHERE Friend_ID = $row->Friend_ID");
    $output[] = fetch_assoc($friend_dets);
}
echo json_encode($output);
?>

これにより、プロセスが必要以上に複雑になります。JOIN次のような1つのクエリで、必要なすべての情報を取得できます。

SELECT Name, Status, WhateverElseYouWant
FROM Friends
    JOIN Profiles ON (Friends.friend-profile-id = Profiles.profile-id)
WHERE Friends.profile-id = MyCurrentProfileID

それはあなたに名前、ステータス、そしてと友達である他のすべての人の名前を与えるでしょうMyCurrentProfileID。次に、結果を配列に入れる必要がありますjson_encode

<?php
$friends = query($QueryFromAbove);
while($row = fetch_object($friends)){
    $output[] = fetch_assoc($friend_dets);
}
echo json_encode($output);
?>
于 2013-01-15T22:48:12.080 に答える
0

このリストに対して1つのSQLクエリを作成できます。テーブルのフレンドとプロファイルの情報を教えてください。

Friendsテーブルでは、プロファイルのIDを指定して、プロファイルの友達であることを示す必要があります。

クエリは次のようになります。selectprofile。*fromprofile、friends、where friends.id_profile = profile.id and profile.id = current-profile-id

グラフでは、友達テーブルで現在のプロファイルIDを使用しており、プロファイルではなく、これはエラーである可能性があります

于 2013-01-15T22:47:37.487 に答える