PHPBuilder - Random Banner Ad System



RSS Twitter
Tips Databases

Random Banner Ad System

by: Joe Sircy
|
September 11, 2000

After reading the tip "A Small Rand Banner System" submitted by Fernando Torres, I wanted to do the same thing, but I wanted to use my database, not a text file. Some of my ads have a large chunk of code to them, i.e. JavaScript.

The first step is to create a table to store your banners. I will not go into creating tables in MySQL here, as there are numerous tutorials on php Builder for that. So create a table (I called mine "ads") and add 2 fields:
1. autonumber, called "id"
2. text, called "data"

The second step is to create the code to retrieve the banner, selecting a random row from the "ads" table. put this code at the top of, say "test.php".

 

<?
    # Global Varibles
    var $db, $conn;
    var $result, $rows, $data;

    $this->db = "YOUR_DB_NAME";
    $this->conn = @mysql_pconnect("HOST", "USER", "PASS") or 
        die("Unable to connect to server: '$SERVER_NAME'");

    @mysql_select_db($this->db, $this->conn) or 
        die ("Unable to select database: $this->db");


    # fuction to print ads randomly ;-) 
    function GetAds() {
      $query = "select * from ads";

      $this->result = @mysql_query($query, $this->conn) or
          die ("Unable to perform query: $query");

      $this->rows = @mysql_num_rows($this->result);

      $adNumber = rand() % $this->rows; 
      // generate a random number within the MAX number of rows

      @mysql_data_seek($this->result, $adNumber) or
         die ("Unable to seek data row: $adNumber");

      $this->data = @mysql_fetch_array($this->result) or
          die ("Unable to fetch row: $adNumber");

      echo("\n<!-- ADS -->\n");
      echo $this->db->data[1];  // print the "data" column
      echo("\n<!-- ADS -->\n");
}  

?>

Now you can call this function in the html:

 

<html>
<head><title>random banner ad test</title></head>
<body>
<center><? GetAds(); ?></center>
</body>
</html>

Comment and Contribute

Your comment has been submitted and is pending approval.

Author:
Joe Sircy

Comment:



Comment:

(Maximum characters: 1200). You have characters left.