Hi i am working on site where users login to read articles, every articles is based in a category. so i want to display on the ‘user home page’ the category and article the last have visited/read. This counts for multiple category, so it neets to display “category ‘a’ read 12 of 20 articles ‘click here to continue reading’ ” If someone can help me or send me in the right direction, any help / info is very much appreciated. Thank you
Share
There’s no special utility that can do something like that for you, if that’s what you’re thinking. What you will need to do is create a table in MySQL that stores a list of articles read by your users. Maybe a table with just
user_idandarticle_id, together making up the primary key.INSERT IGNOREwhen a user visits an article, and when you want to get how many articles have been read, you canSELECT COUNT(*) FROM table WHERE user_id = ?SELECT COUNT(*) FROM table WHERE user_id = ? AND article_id IN (SELECT id FROM articles WHERE category_id = ?)The query above would let you get the number of articles that the specified user has viewed within the specified category, assuming you have it set up like this.
You also mentioned that you want to be able to select the most recent article or category the user has read. To do that, you can add a timestamp field to the new table you created. Another way is to add an auto_increment field and grab the biggest one.