こんにちは、ユーザーがログインして記事を読むサイトに取り組んでいます。すべての記事はカテゴリに基づいています。そのため、「ユーザーのホームページ」に、最後にアクセスした/読んだカテゴリと記事を表示したいと考えています。これは複数のカテゴリでカウントされるため、「カテゴリ 'a' は 20 件中 12 件の記事を読みました 'ここをクリックして読み続けてください'」と表示する必要があります。 . ありがとうございました
2 に答える
ただのアイデア。追加のテーブルを作成して、それをuser_readと呼び、どのユーザーがどの記事を読んだかを保存できます。
テーブルuser_read
user_id
article_id
どの記事が各カテゴリに属しているかを知っていると仮定します。そのため、ユーザーが各カテゴリの記事を何回読んだかを数えることができます。
あなたが考えているのであれば、そのようなことを行うことができる特別なユーティリティはありません。ユーザーが読んだ記事のリストを格納するテーブルを MySQL に作成する必要があります。おそらく、 と だけが一緒になって主キーを構成するテーブルuser_id
ですarticle_id
。INSERT IGNORE
ユーザーが記事にアクセスしたとき、および読んだ記事の数を取得したいときは、次のことができます。SELECT COUNT(*) FROM table WHERE user_id = ?
SELECT COUNT(*) FROM table WHERE user_id = ? AND article_id IN (SELECT id FROM articles WHERE category_id = ?)
上記のクエリを使用すると、指定したユーザーが指定したカテゴリ内で閲覧した記事の数を取得できます。このように設定されていると仮定します。
また、ユーザーが読んだ最新の記事またはカテゴリを選択できるようにしたいとも述べました。これを行うには、作成した新しいテーブルにタイムスタンプ フィールドを追加します。もう 1 つの方法は、auto_increment フィールドを追加して、最大のものを取得することです。