Skip to main content
April 18, 2012
Question

'Like' or Thumbs Up system.

  • April 18, 2012
  • 2 replies
  • 1090 views

How would I go about creating a 'like' system for entries? I'm creating a mini-blog system off of a guestbook format.

Basically I figure a star rating system for each post would be tricky. I just want something where a user would click a link under the post, it would store information in the database every time somebody clicked it, and then display the number of clicks back on the post. I'd also like to stop users from liking the post more than once if possible.

I am fairly new to this but I'm not just looking for code, I want to know how to do it myself.

Thanks.

    This topic has been closed for replies.

    2 replies

    April 18, 2012

    Okay great, thanks for all the help. How would I insert the record? What would I use to insert a record into the database when the link is clicked, and how would I display the number of clicks, or the number of records on the original post?

    The blog will have many posts, so will I need to create a new table for every post? How would I get different results for each one?

    Inspiring
    April 18, 2012

    I've heard good things about the books, "Database Design for Mere Mortals" and "Teach Yourself SQL in 10 Minutes".  The nature of your questions suggests that you don't know very much about databases.

    That's ok though.  We are all new at least once.

    Inspiring
    April 18, 2012

    Create a user vote table with user id and post id as the primary key.  That will prevent double entries.  When the user selects the voting image, go to a page that inserts your record.

    If you want to be thorough, you can also allow people to not like something. 

    Owainnorth
    Inspiring
    April 18, 2012

    Depending on what database engine you're using, you could use the MERGE statement, certainly works in SQL Server. It's basically an INSERT or DELETE depending on whether the data's already there or not, which would absolutely prevent duplicates without the need for doing a separate SELECT statement.