PHP

Creating a Live Score Board Client Logic

Tags:

The the custom JavaScript object player is defined as below.

function player () {
	
	this.name = '';
	this.serving = false;
	this.gamepoint = 0;
	this.sets = new Array();
	
	this.toString = function() {
		return (this.name + ": " + (this.serving ? 'Serving' : 'Facing') + "\n" + this.sets + "\n" + this.gamepoint);
	}
}

The sets member variable is an array.

Creating a Live Score Board Client Logic

Tags:

Let us start with a script tag that will enclose all the fundooo script. You can save in a .js file as well if you want...

The httpObj is the XMLHttpRequest object, and xmlScore is the response XMLDocument. I've created a player object class which is used by the tplayers variable.

Making a Live Score Board - Client

Tags:

Here comes the cool part now. The client! using the famous XMLHttpRequest

The basic logic of creating the client is this

  • Make asynchronous calls to the server to fetch the match data
  • Parse the XML data
  • Using DOM update the content of the Score board
  • And obviously add a timer to refresh the asynchronous HTTP calls

Creating a Live Score Board

Tags:

Many a times you may have come across a fancy "Live Score Board", recently (as of writing) you may have seen the "Java Applet"ized score board. If you want to have a similar such app, but don't want to get into Java and applets. You may wonder.

But there is a solution, Asynchronous Javascript HTTP Request calls, you may commonly now it AJAX, or famous as XMLHttpRequest

... and make something like
Score board screenshot

You can find working example here, Live Score Board

Building a Tag Cloud (logic)

Tags:

Once we have the data we want, we can build the logic to make the cloud.
Here the logic is extremely simple (no wonder I've made a tutorial about it).

The idea is to assign a minimum font-size in "pt" to the least occured tag. In our case we have taken 8pt. Since this 8pt size is applicable to the XML tag (our example), whose tag count is 3. We need to find a multiplying factor for all the tags, that will give us their respective font sizes.

The multiplying factor should take into account, the tags count, and the total of the tag count, which in turn is the percentage of occurance for that tag. So if the factor is x, tag count is 3, tag count sum is 58 and font size is 8, the equation would be

Building a Tag Cloud

Tags:

You may have come across Del.icio.us Tags, which is commonly referered as a "Tag cloud"
tag cloud

Updating statistics table

Tags:

We have our array of keywords, with its hit count.
Now is the time to update our Statistics table, keyword_search_stats and search_engine_stats

<?php
echo '<pre>';
//print_r($query_term);
//print_r($query_term_cnt);
//print_r($final);

Run a loop, searching through keyword_search_stats, if the keyword is present.
If it is present, update the hit counter by 1.
If no record is found, then insert the new keyword

Script to make entries

Tags:

We have our tables in place.
Its time to get with the code.

Lets get all the search engines and their attributes first.

$res_se = mysql_query('select * from search_engines', $conn);
$se = array();
while ($row_se = mysql_fetch_object($res_se)) {
    $se['id'][] = $row_se->se_id;
    $se['name'][] = $row_se->se_name;
    $se['regex'][] = $row_se->se_regex;
}

Creating tables

Tags:

The first and foremost need is to have access logs, Since in this tutorial, we'll be logging in MySQL, we need to have a table in which we can maintain a good access log.

For an access log here are the following necessary data fields

  • Accessed URL
  • Referer to the Acessed URL
  • User Agent accessing the document
  • IP of the Client
  • Datetime stamp

Search Engine Referer Keyword Tracking

Tags:

You really want to analyze your source of traffic. Most of the times you install, use some of the free softwares available on the net. But If you are a programmer... You will want to know how to track these visitors, Search engine keywords, etc...

Here I'll be showing the programmer's point of view to develop a solution.