ホームページ >バックエンド開発 >PHPチュートリアル >JSON出力用にデータベーステーブルのレコードに別のフィールドを追加する方法
表userには2つの文字列、id、name
表user_friendには3つの文字列、id、userid、friendid
$query = $this->db->query('SELECT * FROM user where id=46' ) ; U $ user = $ query-& gt;
$ queryFriend = $ this-& gt; query ('select*from userid ='. $ User-& gt; ID) ; $ Userfriend =$queryfriend->result();
次の JSON 形式を出力したいのですが、どうすればよいですか?
"user": {
"id": "46",
"name": "john"、
"userfriend":[{
"id": "13"、
"userid": "46"、
"friendid": "43"
"、
" userid ":" "46"、
"friendId": "44" 。
ディスカッションに返信 (解決策)
print_r($userfriend);
すべて見る
とは
print_r($userfriend) の結果は次のようになります以下;
Array ( [0] => stdClass オブジェクト ( [id] => 13 [userId] => 46 [friendId] => 43 ) [1] = > stdClass オブジェクト ( [id] => ; 15 [ユーザー ID] => 46 [友達 ID] => 44 ) [2] => stdClass オブジェクト ([id] => 46 [友達 ID] => 45 )$user['userfriend']=$userfriend;
$data['user']= $user;
$user['userfriend']=$userfriend;
$data['user']=$user;
出力は次のとおりです
{
"ユーザー": {
"0": {
"id": "45",
"ニックネーム": "ジェリー",
"性別": "1",
"誕生日": "2000 年 10 月 1 日",
" avatar": "upload/user/45/avatar/0434541421051694278.jpg"、
" " 5"、
"userId": "45"、
"friendId" : "3"、
"endTime": "1426745161"
「userId」: "45"、
"friendId": 「5」、
「endTime」: "1426745161"
「friendId」: "44"、
"endTime": "1426745161"
" id": "10 "、
" userid ":" 45 "、
" friendid ":" 46 "、
" endtime ":" 1426745161 "。
1). 2 つのテーブルを結合します
2). ループして新しい配列を構築します
追加:
json_encode() は UTF-8 のエンコードに注意してください
以上です。
$query = $this->db->query('SELECT * FROM user where id=46' );$user=$query->row();$queryfriend= $this->db->query('SELECT * FROM user_friend where userid='.$user->id );$userfriend=$queryfriend->result();$data = array();$data['user']['id'] = $user[0]['id'];$data['user']['name'] = $user[0]['name'];$data['user']['userfriend'] = $userfriend;echo json_encode($data);
正しいコードは次のとおりです。ありがとうございます
$user = $query->result_array();
$data['userfriend'] = $userfriend; $result =array('result' => array('status' => '1', 'message' => 'ログイン成功', 'user' => $data));
$result = array ( ' ユーザー' => $data);
echo json_encode($result);