Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p>I see that you already selected an answer, so I'm not sure if you figured it all out, but I was writing out a little tutorial for you. Finally got it done, hope it still helps you out.</p> <p>Your method seems to be working fine for serving banners, but if you're going to get into databases and tracking clicks/impressions, I would suggest that you go all in. So store your banner properties in the database as well. I'm going to get ahead and assume that your server/web host allows for a few free MySql databases.</p> <p>What you need to do is create a database, as well as a User/Admin for the database. Then you're going to access the database with a MySql manager, most web hosts provide <code>phpMyAdmin</code>. Once you're inside the database, you need to set up a <code>table</code> to record your data.</p> <p>Here's how I want you to set it up:</p> <pre><code>|Table Name: Banners | |-------------------------| |Field: | Type: | |-------------------------| |ID | int(5) | The Primary Key and Autoincrement attributes should be set on the ID field as well |Image | varchar(100) | |Url | varchar(100) | |Caption | varchar(100) | |Views | int(10) | |Clicks | int(10) | </code></pre> <p>Now that you've got the database done, here comes the hard part, the PHP. I've pretty much done it for you, but it's untested, so I'm sure there will be bugs, that you will have to work out. But it should point you in the right direction, and help you learn.</p> <pre><code>&lt;?PHP // First of all, we need to connect to the MySql server // For more info, check out: http://php.net/manual/en/function.mysql-select-db.php $conn = mysql_connect("localhost", "username", "password"); if(!$conn){ die('Could not connect to the MySql Server ' . mysql_error()); } // Now that we've connected to the MySql sever, we need to select the database // More info can be found on the same link as above $db_selected = mysql_select_db('my_database', $conn); if(!$db_selected) { die ('Could not select the MySql Database: ' . mysql_error()); } // Now we need to check the URL parameters to see, if we came to this page normally or because a banner was clicked // If normally, we serve a random banner and increment the Views field in the database // Otherwise, we increment the Clicks field and direct the user to the banner's URL if(!isset($_GET['Clicked'])){ // if the Clicked parameter is not set, we came to the page normally // Let's select a random banner from the database $result = mysql_query("SELECT * FROM banners ORDER BY RAND() LIMIT 1") or die(mysql_error()); $row = mysql_fetch_array(result); // Now let's increment the Views field for the banner we selected mysql_query("UPDATE banners SET Views = Views + 1 WHERE ID = '" . $row['ID'] . "'") or die(mysql_error()); // let's set the URL to this same page but with the Clicked parameter set $url = "banner_server.php?Clicked=" . $row['ID']; // Last but not least, we have to output the banner HTML // Notice, I set the caption on both the 'alt' and 'title' attributes of the 'img' tag, // that's because IE shows the value of the 'alt' tag when an image is hovered, // whereas Firefox shows the value of the 'title' tag, just thought you might want that! echo "&lt;a href=\"" . $url . "\"&gt;&lt;img src=\"" . $row['Image'] . "\" alt=\"" . $row['Caption'] . "\" title=\"" . $row['Caption'] . "\" /&gt;&lt;/a&gt;"; }else{ // Otherwise, increment the Clicks field and redirect // First, let's get the ID of the banner that was clicked from the Clicked parameter $id = (int)$_GET['Clicked']; // now let's increment the Clicks field for the banner mysql_query("UPDATE banners SET Clicks = Clicks + 1 WHERE ID = '" . $id . "'") or die(mysql_error()); // now let's select the banner from the database so we can redirect to the URL that's associated with it $result = mysql_query("SELECT * FROM banners WHERE ID = '" . $id . "'") or die(mysql_error()); $row = mysql_fetch_array(result); // redirect to the URL header("location: " . $row['Url']); } // Close the MySql connection mysql_close($conn); ?&gt; </code></pre> <p><strong>Good luck</strong></p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload