更新の下にコメントを表示しようとしています。すべてのコメントをデータベースから配列として取得する方法を教えてください。下のコードは、私が$ article-> commentsを以下に示すように呼び出すと私に1つのコメントしか与えません。私は1つの結果しか得ません。行を数えると正確な数が得られますが、表示すると1つの結果しか得られません。左結合テーブルデータを配列として選択する方法
$articlesQuery = $db->query("
SELECT
updates.id,
updates.update_text,
updates.posted_at,
updates.user_id,
updates.the_group,
members_comments.comment AS comments,
COUNT(articles_likes.id) AS likes,
GROUP_CONCAT(members.id SEPARATOR '|') AS liked_by
FROM updates
LEFT JOIN articles_likes
ON updates.id = articles_likes.article
LEFT JOIN members
ON articles_likes.user = members.id
RIGHT JOIN members_comments
ON members_comments.update_id = updates.id
GROUP BY updates.id
ORDER BY updates.id DESC
LIMIT 3
");
while ($row = $articlesQuery->fetch_object()){
$row->liked_by = $row->liked_by ? explode('|', $row->liked_by) : [];
$articles[] = $row;
}
表示するには、これはエラーを表示しますが、私がしようとしていることが説明されています。
foreach($articles as $article):
echo $article->update_text;
foreach ($article->comments as $comment){
echo $article->comment;
}
endforeach;
は$ articlesQuery-> fetch_object()$ articlesQuery-> fetch_arrayと()を交換してください。その後、すべての行が配列として返されます –
これに従いますhttp://php.net/manual/en/mysqli-result.fetch-array.php –
@BikashPaul、それは私がそのクエリでやっているすべてのことを台無しにします。問題を解決しません。御時間ありがとうございます。 –