Results 1 to 3 of 3

Thread: Help: adding commenting functionality to news articles

  1. #1
    Join Date
    Jul 2008

    Help: adding commenting functionality to news articles

    What's the common method for creating news articles which allow readers to post comments on those articles? I'm still learning web dev, but I have set up a clan site for me and my friends here http://mith-project.net

    If you visit it, youll see I have news announcements both in the header and on the front page. I would absolutely love it if I could allow readers to post comments on the announcements. Also, I'd like to post each of my php/sql stories into the forum (a phpbb3 forum--are there any better ones around?) where the comments would be paralleled to the comments on the front page.

    I just need some help understanding the php/sql structure that is required to allow cross posting with a single user account between two different sql databases, if it is even possible.

    If it isn't could someone just explain how to the news story comments work out? If you dont know what I mean, check almost any popular site, such as slashdot, where readers can post comments on each article.


  2. #2
    Join Date
    Apr 2007
    just to let you know the site is incredibly slow opening for me right now. Maybe 30 seconds load time.

    To answer your question briefly. I presume your news is stored in a database table and that table has an auto increment id so each news item has a unique identity (called something like newsid). If you make another table you can store any comments and the newsid (Unix time stamp too for time/date and the userid).

    When you display the news article you have the id of the article to display so you also look in the comments table for any comments with the same news id and display them too (ordered by the timestamp).

    Add a form to the article page and store the comments with the relevant newsid.

    You join tables together with numerical ids ( and indexed columns for speed) and organise your structure around those ids.

    so user id 123 has an comment on newsarticle id 789.

    The page has an address like

    news table has
    newsid		title		content
    789		clan stuff	Lots of stuff

    comments table has
    commentid	newsid	userid	comment
    1		789	123	Yeaaa, clan stuff!
    user table has
    userid	name
    123	bob
    So from the newsid in the URL I can get the article content with a simple
    select * from news where newsid=789
    I can get the comments too with a similar select
    select * from comments where newsid=789
    from this I can return the userid and et the users info.

    Once you get this very basic way of doing it working you have to consider a few more things.

    The security of the statements and sanitizing all user inputs and URL string input.
    Sanitize your input (google for it) or I could simply change the url to
    news.php?newsid=789';drop table users
    and you table data is gone!!

    Next for efficiency, joining tables together to do it all in a single SQL statement.

  3. #3
    Join Date
    Jul 2008
    Thank you very much! I know the site was slow earlier. Not sure what was up with it, but I think it's fixed now. I'm going to spend some time trying this out and I'll get back with how it goes.

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
HTML5 Development Center



X vBulletin 4.2.2 Debug Information

  • Page Generation 0.14642 seconds
  • Memory Usage 2,851KB
  • Queries Executed 13 (?)
More Information
Template Usage (33):
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_global_above_footer
  • (1)ad_global_below_navbar
  • (1)ad_global_header1
  • (1)ad_global_header2
  • (1)ad_navbar_below
  • (1)ad_showthread_firstpost_sig
  • (1)ad_showthread_firstpost_start
  • (1)ad_thread_first_post_content
  • (1)ad_thread_last_post_content
  • (6)bbcode_code
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)headinclude_bottom
  • (3)memberaction_dropdown
  • (1)navbar
  • (4)navbar_link
  • (1)navbar_moderation
  • (1)navbar_noticebit
  • (1)navbar_tabs
  • (2)option
  • (3)postbit
  • (3)postbit_onlinestatus
  • (3)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available (6):
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files (26):
  • ./showthread.php
  • ./global.php
  • ./includes/class_bootstrap.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/functions_navigation.php
  • ./includes/class_friendly_url.php
  • ./includes/class_hook.php
  • ./includes/class_bootstrap_framework.php
  • ./vb/vb.php
  • ./vb/phrase.php
  • ./includes/functions_facebook.php
  • ./includes/functions_calendar.php
  • ./includes/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_notice.php
  • ./packages/vbattach/attach.php
  • ./vb/types.php
  • ./vb/cache.php
  • ./vb/cache/db.php
  • ./vb/cache/observer/db.php
  • ./vb/cache/observer.php 

Hooks Called (70):
  • init_startup
  • friendlyurl_resolve_class
  • init_startup_session_setup_start
  • database_pre_fetch_array
  • database_post_fetch_array
  • init_startup_session_setup_complete
  • global_bootstrap_init_start
  • global_bootstrap_init_complete
  • cache_permissions
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • load_show_variables
  • load_forum_show_variables
  • global_state_check
  • global_bootstrap_complete
  • global_start
  • style_fetch
  • global_setup_complete
  • showthread_start
  • showthread_getinfo
  • strip_bbcode
  • friendlyurl_clean_fragment
  • friendlyurl_geturl
  • forumjump
  • cache_templates
  • cache_templates_process
  • template_register_var
  • template_render_output
  • fetch_template_start
  • fetch_template_complete
  • parse_templates
  • fetch_musername
  • notices_check_start
  • notices_noticebit
  • process_templates_complete
  • friendlyurl_redirect_canonical
  • showthread_post_start
  • showthread_query_postids
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • postbit_display_start
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • memberaction_dropdown
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • build_navigation_data
  • build_navigation_array
  • check_navigation_permission
  • process_navigation_links_start
  • process_navigation_links_complete
  • set_navigation_menu_element
  • build_navigation_menudata
  • build_navigation_listdata
  • build_navigation_list
  • set_navigation_tab_main
  • set_navigation_tab_fallback
  • navigation_tab_complete
  • fb_like_button
  • showthread_complete
  • page_templates