Low End Mac's Online Tech Journal
Fixing a Small Scripting Problem
Website Automation with PHP and MySQL, Part 6
Dan Knight - 2002.05.10
This morning I discovered a problem with the PHP scripts we use to display the Mac of the Day and Email List of the Day.
My #2 son Brian <http://brkn.net/> and I came up with the following code to display the Mac of the Day:
- <?php
- $host = "sqlserver.lowendmac.com";
- $username = "MyName";
- $password = "MyPassword";
- $connection = @mysql_connect($host,$username,$password);
- mysql_select_db(lem_mod,$connection);
- $today = round((date(U) + 32400) / 86400);
- $mod = $today % 89;
- $query = mysql_fetch_array(mysql_query("select * from mod where id = '$mod'"));
- echo "<B><BR>Mac of the Day</B><BR> <A HREF=/$query[link]>$query[model]</A>";
- $lod = $today % 38;
- $query = mysql_fetch_array(mysql_query("select * from lists where id = '$lod'"));
- echo "<B><BR>List of the Day</B><BR> <A HREF=\"$query[link]\">$query[listname]</A><BR>";
- ?>
Notice the line near the middle - $mod = $today % 89;
That line tells PHP to use modulo arithmetic to divide today's date (converted to a number) by 89 and discard everything but the remainder. This would give us 89 unique values - just what we need with 89 entries in the Mac of the Day database.
The problem is, modulo arithmetic returns a remainder from 0 (zero) to one less than your maximum number, so our function was using numbers from 0 to 88. And our database uses numbers from 1 to 89.
We use a similar function to handle the 38 email lists, and that's where I noticed the problem this morning. Today the email list script was returning zero, so no list was displayed.
All we have to do is add one to the number returned to have values in the range we need. I've modified two lines, uploaded the new script, and now everything works:
$mod = ($today % 89) + 1; $lod = ($today % 38) + 1;
The Next Project
I'd planned on automating site links next, but have instead decided that the next project will be automating the Deal of the Day. This will involve real calendar dates, not raw numbers based on seconds since 1970.01.01.
I hope to cover this project next week.
Join us on Facebook, follow us on Twitter or Google+, or subscribe to our RSS news feed
Today's Links
- Mac of the Day: Kanga PowerBook G3, introduced 1997.11.10. The first G3 PowerBook ran at 250 MHz, was limited to 160 MB RAM.
- Support Low End Mac
Recent Content
About LEM Support Usage Privacy Contact
Follow Low End Mac on Twitter
Join Low End Mac on Facebook
Favorite Sites
MacSurfer
Cult of Mac
Shrine of Apple
MacInTouch
MyAppleMenu
InfoMac
The Mac Observer
Accelerate Your Mac
RetroMacCast
The Vintage Mac Museum
Deal Brothers
DealMac
Mac2Sell
Mac Driver Museum
JAG's House
System 6 Heaven
System 7 Today
the pickle's Low-End Mac FAQ
Affiliates
Amazon.com
The iTunes Store
PC Connection Express
Macgo Blu-ray Player
Parallels Desktop for Mac
eBay